Подтвердить что ты не робот

Как распечатать возвращенное сообщение от 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(), но он просто печатает адрес в памяти.

Спасибо

4b9b3361

Ответ 1

Используйте 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/

Ответ 2

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

ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();

Ответ 3

Я использовал следующий код

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

Ответ 4

Этот код вернет все ответное сообщение в ответить как String и код состояния rsp, как int.

respond = response.getStatusLine().getReasonPhrase();

rsp = response.getStatusLine().getStatusCode();`