簡體   English   中英

在Java中發送HTTP post請求時出現問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM