How to print out returned message from HttpResponse?

前端 未结 5 1239
没有蜡笔的小新
没有蜡笔的小新 2020-12-02 16:16

I have this code on my Android phone.

   URI uri = new URI(url);
   HttpPost post = new HttpPost(uri);
   HttpClient client = new DefaultHttpClient();
   Htt         


        
相关标签:
5条回答
  • 2020-12-02 16:22

    The simplest approach is probably using org.apache.http.util.EntityUtils:

    String message = EntityUtils.toString(response.getEntity());
    

    It reads the contents of an entity and returns it as a String. The content is converted using the character set from the entity (if any), failing that, "ISO-8859-1" is used.

    If necessary, you can pass a default character set explicitly - e.g.

    String message = EntityUtils.toString(response.getEntity(). "UTF-8");
    

    It gets the entity content as a String, using the provided default character set if none is found in the entity. If the passed default character set is null, the default "ISO-8859-1" is used.

    0 讨论(0)
  • 2020-12-02 16:25

    I would just do it the old way. It's a more bulletproof than ResponseHandler, in case you get different content types in the response.

    ByteArrayOutputStream outstream = new ByteArrayOutputStream();
    response.getEntity().writeTo(outstream);
    byte [] responseBody = outstream.toByteArray();
    
    0 讨论(0)
  • 2020-12-02 16:28

    I used the following code

    BufferedReader r = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    
    StringBuilder total = new StringBuilder();
    
    String line = null;
    
    while ((line = r.readLine()) != null) {
       total.append(line);
    }
    r.close();
    return total.toString();
    
    0 讨论(0)
  • 2020-12-02 16:35

    This code will return the entire response message in respond as a String, and status code in rsp, as an int.

    respond = response.getStatusLine().getReasonPhrase();
    
    rsp = response.getStatusLine().getStatusCode();`
    
    0 讨论(0)
  • 2020-12-02 16:36

    Use ResponseHandler. One line of code. See here and here for sample Android projects using it.

    public void postData() {
        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://www.yoursite.com/user");
    
        try {
            // Add your data
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("id", "12345"));
            nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    
            // Execute HTTP Post Request
            ResponseHandler<String> responseHandler=new BasicResponseHandler();
            String responseBody = httpclient.execute(httppost, responseHandler);
            JSONObject response=new JSONObject(responseBody);
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
    } 
    

    add combination of this post and complete HttpClient at - http://www.androidsnippets.org/snippets/36/

    0 讨论(0)
提交回复
热议问题