2013-10-11 1 views
2

나는 ...안드로이드 HttpClient를 문제가 설정 콘텐츠 길이

HttpPost httppost = new HttpPost(URL); 
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
httppost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE); 
String length = String.valueOf(httppost.getEntity().getContentLength()); 
httppost.setHeader(HTTP.CONTENT_LEN, length); //If commented out it works 

을 다음과 게시물을 만들려고하지만, 나는 다음과 같은 오류가 요청을 ... 실행하려고하면

10-11 22 : 05 : 02.940 : W/(4203)를 System.err : 콘텐츠 길이가 잘못 때문에 org.apache.http.client.ClientProtocolException

나는이 추측하고있다.

답변

4

Apache HttpClient (안드로이드와 함께 제공되는 포크도 포함)는 항상 동봉 된 HTTP 엔터티의 속성을 기반으로 콘텐츠 길이를 계산합니다. 하나는 수동으로 Content-LengthTransfer-Encoding 헤더를 설정할 필요가 없습니다.

+0

감사합니다. 내 게시물 요청이 작동하지 않는 또 다른 이유가 있음을 의미합니다. 이것이 어딘가에 기록되어 있습니까? 미래의 검색 사용자에게 도움이 될 수 있습니다. – Jackie

+0

@oleg +1 httpPost의 헤더에 이것을 설정할 때 내 앱이 손상되었습니다. 당신은 나를 그렇게 이끌어 줄 수 있습니까? 그리고 HTTPclient, java는 없습니까? –

+0

@EvolGate 컴파일 된 목록은 없지만 프로젝트에 큰 기여를했다고 생각합니다. 그러한 세부 사항 대부분은 자습서 http://hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/index.html에서 찾을 수 있습니다. – oleg

관련 문제