Как распечатать возвращенное сообщение от HttpResponse?

У меня есть этот код моего телефона на базе Android.

   URI uri = new URI(url);
   HttpPost post = new HttpPost(uri);
   HttpClient client = new DefaultHttpClient();
   HttpResponse response = client.execute(post);

У меня есть приложение веб-формы asp.net, которое имеет в загрузке страницы это

 Response.Output.Write("It worked");

Я хочу захватить этот Ответ от HttpReponse и распечатать его. Как я делаю это?

Я попробовал response.getEntity().toString() но это просто, кажется, распечатывает адрес в памяти.

Спасибо

25
задан Ned Batchelder 14 July 2010 в 23:45
поделиться

2 ответа

Используйте ResponseHandler . Одна строчка кода. См. здесь и здесь для примеров проектов Android, использующих его.

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

добавьте комбинацию этого сообщения и заполните HttpClient по адресу - http://www.androidsnippets.org/snippets/36/

38
ответ дан 28 November 2019 в 18:27
поделиться

Я бы просто сделал это по-старому. Это более надежно, чем ResponseHandler, на случай, если вы получите в ответ разные типы содержимого.

ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();
10
ответ дан 28 November 2019 в 18:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: