У меня есть этот код моего телефона на базе 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()
но это просто, кажется, распечатывает адрес в памяти.
Спасибо
Используйте 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/
Я бы просто сделал это по-старому. Это более надежно, чем ResponseHandler, на случай, если вы получите в ответ разные типы содержимого.
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();