简体   繁体   中英

How to use http post method to call php webservice in android?

I'm calling php webservice through http post method. I'm sending the request in the proper way, but when responce comes, it is not giving me response.

That's what I have:

org.apache.http.message.BasicHttpResponse@4057f498

Help me, please.

This is the normal responce. What you need to get the information is to call a method:

responce.getEntity()

Read more here .

HI Mehul,

Please pass your httpConnection object's getInputStream in this function it will return the response in String.

Example

HttpPost postMethod = new HttpPost(Your Url);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

nameValuePairs.add(new BasicNameValuePair("key", your value to pass on server));
DefaultHttpClient hc = new DefaultHttpClient();

HttpResponse response = hc.execute(postMethod);
HttpEntity entity = response.getEntity();

InputStream inStream = entity.getContent();

Now Pass this inStream into function it will return the Message of your response.

public static String convertStreamToString(InputStream is)
{
   BufferedReader reader = new BufferedReader(new InputStreamReader(is));
   StringBuilder sb = new StringBuilder();

   String line = null;
   try 
   {
       while ((line = reader.readLine()) != null) 
       {
           sb.append(line + "\n");
       }
   } 
   catch (IOException e) 
   {
       e.printStackTrace();
   } 
   finally 
   {
       try 
       {
           is.close();
       } 
       catch (IOException e) 
       {
           e.printStackTrace();
       }
   }
   return sb.toString();

}

Let's say your org.apache.http.message.BasicHttpResponse@4057fb48 is called response .
To retrieve the data from the HttpResponse, you need:

HttpEntity entity = response.getEntity();
final InputStream inputStream = entity.getContent();

You handle this InputStream depending on what kind of data it contains.

If you need the String value of the response entity:

HttpEntity entity = response.getEntity();
final String responseText = EntityUtils.toString(entity);

Perhaps you want to do something similar to the following.

  HttpResponse response = client.execute(request);
  StatusLine status = response.getStatusLine();
  if (status.getStatusCode() == HttpStatus.SC_OK)
  {
    ResponseHandler<String> responseHandler = new BasicResponseHandler();
    String responseBody = responseHandler.handleResponse(response);
    ...
  }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM