Как использовать метод http post для вызова php webservice в Android? - PullRequest
2 голосов
/ 05 мая 2011

Я звоню в php webservice с помощью метода http post.Я отправляю запрос надлежащим образом, но когда приходит ответ, он не дает мне ответа.

Вот что у меня есть:

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

Помогите мне, пожалуйста.

Ответы [ 4 ]

2 голосов
/ 05 мая 2011

Это нормальный ответ.Чтобы получить информацию, необходимо вызвать метод:

responce.getEntity()

Подробнее здесь .

1 голос
/ 05 мая 2011

Допустим, ваш org.apache.http.message.BasicHttpResponse@4057fb48 называется response.
Чтобы получить данные из HttpResponse, вам необходимо:

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

Вы обрабатываете это InputStream в зависимости от того, какие данные оно содержит.

Если вам нужно значение String объекта ответа:

HttpEntity entity = response.getEntity();
final String responseText = EntityUtils.toString(entity);
1 голос
/ 05 мая 2011

Привет Мехул,

Пожалуйста, передайте getInputStream вашего объекта httpConnection в эту функцию, он вернет ответ в String.

Пример

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

Теперь передайте этот inStream в функцию, он вернет сообщение вашего ответа.

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

}

0 голосов
/ 05 мая 2011

Возможно, вы хотите сделать что-то похожее на следующее.

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