[英]Problem sending HTTP post request in Java
嘿,我正在嘗試用xml正文發布一個http請求。 這是我的代碼:
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();
}
}
我從AppServer(400)得到了一個錯誤的請求,並且在調試中我可以看到HttpEntity也有ContentType標頭並且它設置為text / plain ...為什么? 我究竟做錯了什么? 向身體發送請求的正確方法是什么?
解:
好的..我明白了..謝謝skaffman,那是非常接近:) AbstractHttpEntity聲明setContentType函數...
對不起打擾..
烏迪
假設這是HttpClient 4.1,那么你沒有為StringEntity
使用適當的構造StringEntity
,你可能需要指定mime類型以及charset,例如
HttpEntity entity = new StringEntity(xmlString, "application/xml", HTTP.UTF_8);
見javadoc 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.