web-dev-qa-db-ja.com

HttpClientを使用してボディリクエストに書き込む

XMLコンテンツタイプでリクエストの本文を書きたいのですが、HttpClientオブジェクト( http://hc.Apache.org/httpclient-3.x/apidocs/index.html

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpRequest = new HttpPost(this.url);
httpRequest.setHeader("Content-Type", "application/xml");

そして、XMLで本文を書き続ける方法がわかりません...

55
Tata2

XmlがJava.lang.Stringで記述されている場合、この方法でHttpClientを使用できます

    public void post() throws Exception{
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost("http://www.baidu.com");
        String xml = "<xml>xxxx</xml>";
        HttpEntity entity = new ByteArrayEntity(xml.getBytes("UTF-8"));
        post.setEntity(entity);
        HttpResponse response = client.execute(post);
        String result = EntityUtils.toString(response.getEntity());
    }

例外に注意してください。

ところで、例はhttpclientバージョン4.xによって書かれています

106
Larry.Z

コードの拡張(送信するXMLがxmlStringにあると仮定):

String xmlString = "</xml>";
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpRequest = new HttpPost(this.url);
httpRequest.setHeader("Content-Type", "application/xml");
StringEntity xmlEntity = new StringEntity(xmlString);
httpRequest.setEntity(xmlEntity );
HttpResponse httpresponse = httpclient.execute(httppost);
23
Santosh