Android, send and receive XML via HTTP POST method

31,803

Solution 1

Ok, I have figured out soon after I posted this question. This code here works fine:

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();
}

Solution 2

You can get the content of the response using:

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

You can then write this to a file using something like this.

there is something wrong with receiving the response

Since you havn't said what is wrong with receiving the response it's somewhat difficult to help you with this point.

Solution 3

Why not use Spring RestTemplate in Spring for Android?

Share:
31,803
cevikarda
Author by

cevikarda

Updated on July 09, 2022

Comments

  • cevikarda
    cevikarda almost 2 years

    There is a relevant question, but I could not get the answer clearly.

    I would like to POST a short xml code

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

    to a specific URL address over HTTP. The Web service will send me back a XML code. The important part is that I will parse the received XML, and I want to store that as a file.

        // 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
    

    there is something wrong with receiving the response. Besides, I did not write anything to save the received XML as a file. Can someone write a code snippet?