Android, отправлять и получать XML с помощью метода HTTP POST - PullRequest
8 голосов
/ 16 февраля 2011

Есть соответствующий вопрос, но я не смог получить четкий ответ.

Я хотел бы разместить короткий XML-код

<aaaLogin inName="admin" inPassword="admin123"/>

на определенный URL-адрес по HTTP. Веб-сервис отправит мне обратно код XML. Важной частью является то, что я буду анализировать полученный XML и хочу сохранить его в виде файла.

    // Create a new HttpClient and Post Header  
    HttpClient httpclient = new DefaultHttpClient();  
    HttpPost httppost = new HttpPost("http://192.168.192.131/"); //URL address

    StringEntity se = new StringEntity("<aaaLogin inName=\"admin\" inPassword=\"admin123\"/>",HTTP.UTF_8); //XML as a string
    se.setContentType("text/xml"); //declare it as XML
    httppost.setHeader("Content-Type","application/soap+xml;charset=UTF-8");
    httppost.setEntity(se);

    BasicHttpResponse httpResponse = (BasicHttpResponse) httpclient .execute(httppost);
    tvData.setText(httpResponse.getStatusLine().toString()); //text view is expected to print the response

что-то не так с получением ответа. Кроме того, я ничего не писал, чтобы сохранить полученный XML в виде файла. Может кто-нибудь написать фрагмент кода?

Ответы [ 3 ]

13 голосов
/ 16 февраля 2011

Хорошо, я разобрался вскоре после того, как отправил этот вопрос.Этот код здесь отлично работает:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.192.131/");

try {
    StringEntity se = new StringEntity( "<aaaLogin inName=\"admin\" inPassword=\"admin123\"/>", HTTP.UTF_8);
    se.setContentType("text/xml");
    httppost.setEntity(se);

    HttpResponse httpresponse = httpclient.execute(httppost);
    HttpEntity resEntity = httpresponse.getEntity();
    tvData.setText(EntityUtils.toString(resEntity));        
} catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
3 голосов
/ 16 февраля 2011

Вы можете получить содержание ответа, используя:

String responseXml = EntityUtils.toString(httpResponse.getEntity());

Затем вы можете записать это в файл, используя что-то , например, .

что-то не так с получением ответа

Поскольку вы не сказали что не так с получением ответа, вам довольно сложно помочь с этим вопросом.

1 голос
/ 24 июля 2012

Почему бы не использовать Spring RestTemplate in Spring для Android ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...