Как получить строку из объекта HttpResponse после публикации в PHP-файл? - PullRequest
0 голосов
/ 11 декабря 2011

Я хочу получить данные, отправленные обратно php-файлом после использования HTTP-сообщения в Android.Мой код выглядит так:

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://10.0.2.2/post.php");
List <NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("test", "hejsan"));

try{
    post.setEntity(new UrlEncodedFormEntity(pairs));
}catch(UnsupportedEncodingException a){
        infoText.setText("failed to post");
}

try{
        HttpResponse response = client.execute(post);
        infoText.setText(response.getEntity().toString());
}catch(ClientProtocolException b){
        infoText.setText("failed to get response");
}catch(IOException e){
        infoText.setText("failed IOEXCEPTION");
}this code only changes the "TextView" to: org.apache.http.conn

BasicManagedEntity @ 45f94a68 ... Мой php-файл очень простой, он только повторяет текст "данные".Я полагаю, что проблема связана с "response.getEntity (). ToString ()", но как мне получить отправленные обратно данные в виде строки из объекта HttpPost?

извините за плохое написание.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011

Вы также можете использовать EntityUtils:

String responseBody = EntityUtils.toString(response.getEntity());
0 голосов
/ 11 декабря 2011

Вы можете использовать обработчик ответа .. Примерно так:

public static String getResponseBody(HttpResponse response) {
    ResponseHandler<String> responseHander = new BasicResponseHandler();
    String responseBody = null;
    try {
        responseBody = (String) responseHander.handleResponse(response);
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    logger.debug("Response Body Data:" + responseBody);

    return responseBody;
}
...