我正在尝试将一些 XML 放入服务器,但其要点是无论我做什么,HttpPut 都不会在 Http 正文中放入任何内容。服务器总是回来说尸体不见了,通过Wireshark查看,什么都没有!这是我用来设置和运行请求的代码:
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 冲突,正文是服务器的特定于应用程序的消息,告诉我正文丢失。我确认 Wireshark 缺少它。
编辑:
一个有趣的提示是,我在桌面上独立运行了相同的代码,并且它有效。那么,Android 版本的 HttpClient 或系统有什么问题吗?我也尝试了几个不同的 API 级别,只是为了检查。
有什么想法吗?
谢谢!