0
嘿, 我想用xml主体发布一个http请求。 这是我的代码:在Java中发送HTTP POST请求的问题
public void setBla(String url, String cookie, SomeEnum status) {
String availabilityUrl = url;
HttpPost httpPost = new HttpPost(availabilityUrl + VERSION_TEXT);
httpPost.setHeader(HttpHeaders.AUTHORIZATION, LP_AUTH_HEADER_VALUE);
httpPost.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_XML);
httpPost.setHeader("X-HTTP-Method-Override", HttpMethod.PUT);
httpPost.setHeader("Cookie", cookie);
httpPost.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML);
HttpResponse response = null;
try {
HttpEntity entity = new StringEntity("<availability><chat>" + status + "</chat></availability>", HTTP.UTF_8);
httpPost.setEntity(entity);
response = m_httpClient.execute(httpPost);
}
catch (Exception e) {
e.printStackTrace();
}
}
即时得到从应用服务器(400)错误请求,并在调试我可以看到HttpEntity也有ContentType标头和它设置为text/plain的... 为什么呢? 我在做什么错? 什么是正确的方式发送请求与身体?
SOLUTION:
OK ..我得到了它.. 谢谢skaffman,这是非常接近:) AbstractHttpEntity声明的setContentType功能...
对不起,打扰..
Udi
值得一提的是,您正在使用Apache http客户端库(以及哪个版本)。 – 2011-04-20 13:09:40