Подтвердить что ты не робот

Запись в запросе тела с помощью 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...

4b9b3361

Ответ 1

Если ваш 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());
    }

обратите внимание на Исключения.

BTW, пример написан httpclient версии 4.x

Ответ 2

Расширение кода (при условии, что 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);