자바 네트워크 다운로드 해결 파일 길이 가 져 오지 않 음

원래 인터넷 코드 를 검색 해 보 니 다 중 다운로드 코드 를 보 았 습 니 다. 테스트 결과 다운로드 회사 서버 에 있 는 파일 의 길 이 를 얻 지 못 했 습 니 다. 소스 코드 는 다음 과 같 습 니 다.
HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();    
//获得文件长度    
long nEndPos =getFileSize(sURL); 

응답 헤드 인쇄 후 Transfer - Encoding: chunked 발견
HTTP 1.1 프로 토 콜 에서 RFC 2616 에서 14.41 장 에서 정 의 된 Transfer - Encoding: chunked 의 헤더 정보, chunked 인 코딩 은 3.6.1 에서 정의 되 며 모든 HTTP 1.1 응용 프로그램 은 trunked 인 코딩 을 사용 하여 body 콘 텐 츠 의 길 이 를 동적 으로 제공 하 는 방식 을 지원 합 니 다.
나중에 다시 한 번 찾 아 보 았 는데 HttpClient 오픈 소스 프로젝트 가 해결 되 고 안 드 로 이 드 가 이 가방 을 통합 한 것 을 발견 했다.
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet();
httpGet.setURI(new URI(urlStr));
HttpResponse response = client.execute(httpGet);
HttpEntity entity  = response.getEntity();
fileSize = entity.getContentLength();
client.getConnectionManager().shutdown();

문제 해결

좋은 웹페이지 즐겨찾기