일부 XML을 서버에 가져 오려고하지만 그 주안점은 내가하는 일에 상관없이 HttpPut은 Http 본문에 아무것도 넣지 않을 것이라는 점입니다. 서버는 항상 시체가 누락되었다고 말하며 Wireshark를 통해 그것을보고 있습니다. 아무 것도 없습니다! 요청을 설정하고 실행하는 데 사용하는 코드는 다음과 같습니다.안드로이드 HttpPut 엔티티 설정에도 불구하고 몸이 없음
HttpPut putRequest = new HttpPut(urlString]);
StringEntity stringEntity = new StringEntity(xmlString, HTTP.ISO_8859_1);
stringEntity.setContentType("text/xml");
putRequest.setEntity(stringEntity);
putRequest.addHeader("Host", formatUrlForHostHeader(broadsoftUrl));
putRequest.addHeader("Authorization", authorizationString);
putRequest.addHeader("Content-Type", "text/xml");
putRequest.addHeader("Accept", "text/xml");
response = httpClient.execute(putRequest);
여기에 무엇을 포함해야할지 모르겠습니다. 4.2 및 4.0.3에서 시험해 보았습니다. 이 코드는 AsyncTask의 doInBackground에서 실행 중입니다. 내가받는 응답 코드는 409 Conflict이며, 본문은 서버의 응용 프로그램 별 메시지로 본문이 누락되었음을 나타냅니다. 나는 그것이 Wireshark와 함께 빠져있는 것을 확인했다.
편집 :
흥미로운 노트가 내 바탕 화면에 동일한 코드 독립를 실행하고,이 일 것입니다. 그래서, 안드로이드 버전의 HttpClient 나 시스템이 있을까요? 몇 가지 다른 API 레벨을 시도해 보았습니다.
의견이 있으십니까?
감사합니다.
addHeader() 호출을 추가 한 순간부터이 사실을 알게되었습니다. addHeader()가 없으면 HttpPut이 나에게 잘 작동하고있다 ... 아마도 어딘가에서 bugreported해야만 할까? – sgielen