2013-05-06 4 views
2

브라우저에서 업로드 파일을 읽은 다음 원격 서버에 쓰려고합니다. 하지만 request.getheader ("content-length")가 JAVA의 request.getInputStream() 실제 길이와 다른 것을 발견했습니다. 그러나 Request.Header [ "Content-Length"]는 C#의 Request.InputStream의 실제 길이와 같습니다.C#과 Java 간의 콘텐츠 길이가 다릅니다.

아무도 그 차이를 설명하려고 할 수 있습니까?

답변

0

상황이 비슷합니까? 하나의 함정은 압축 된 콘텐츠의 가능성 일 수 있습니다. 하나의 구현이 문자를 계산하고 다른 하나가 연결을 통해 전송 된 바이트를 계산하면 또 다른 문자 인코딩이 될 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 결국 우리는 버퍼 길이가 1024 바이트 인 버퍼 바이트 [] 배열을 읽으려고 할 때 실수가 있음을 발견했습니다. Java의 readByte 메소드는 일부 바이트 만 채 웁니다. 그러나 다른 바이트는 '\ 0'으로 지우지 않습니다. 그래서 우리가 원격 스트림에 쓰는 바이트는 "Content-Length"보다 길다. – Ericpoon

관련 문제