Lectura de la respuesta HttpPost
Estoy usando este código para publicar una solicitud en un servidor http:
HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost( "http://192.168.0.1/test.php" ); HttpResponse response = null; try { List< NameValuePair > nameValuePairs = new ArrayList< NameValuePair >( 1 ); nameValuePairs.add( new BasicNameValuePair( "num", "2" ) ); post.setEntity( new UrlEncodedFormEntity( nameValuePairs ) ); response = client.execute( post ); } catch( ClientProtocolException e ) { ... } catch( IOException e ) { ... }
La respuesta no es más que una simple String
. ¿Cómo puedo leer esta respuesta como una String
? No parece que HttpResponse tenga un método para hacer esto directamente.
- Error en el corredor al realizar pruebas con Robolectric
- Android: AndroidHttpClient - ¿cómo establecer el tiempo de espera?
- Manejando espacios de nombres Xml con XmlPullParser
- Espere hasta que se complete la tarea
- AVD no dejará de cerrar
- Conectar el dispositivo android a través de MQTT con ssl
- NullPointerException acceder a las vistas en onCreate ()
- Encontró un signo más aleatorio, sin error de sintaxis
- Medición de la frecuencia cardíaca usando Xiaomi MiBand y BLE
- ¿Cómo puedo obtener el nombre del paquete del lanzador actual en android 2.3 y superior?
- Javadoc en Android (Eclipse)
- Cómo recuperar las miniaturas de YouTube con la biblioteca de clientes de la API de Google para Java
- Error de enlace no satisfactorio al inicializar el concentrador Myo en Android
He creado este método auxiliar para enviar datos y encabezados especiales por método POST en Android (los encabezados HashMap podrían estar vacíos si no tienes encabezados personalizados):
public static String getStringContent(String uri, String postData, HashMap<String, String> headers) throws Exception { HttpClient client = new DefaultHttpClient(); HttpPost request = new HttpPost(); request.setURI(new URI(uri)); request.setEntity(new StringEntity(postData)); for(Entry<String, String> s : headers.entrySet()) { request.setHeader(s.getKey(), s.getValue()); } HttpResponse response = client.execute(request); InputStream ips = response.getEntity().getContent(); BufferedReader buf = new BufferedReader(new InputStreamReader(ips,"UTF-8")); if(response.getStatusLine().getStatusCode()!=HttpStatus.SC_OK) { throw new Exception(response.getStatusLine().getReasonPhrase()); } StringBuilder sb = new StringBuilder(); String s; while(true ) { s = buf.readLine(); if(s==null || s.length()==0) break; sb.append(s); } buf.close(); ips.close(); return sb.toString(); }
response.getStatusLine();
// Para leer la línea de estado
org.apache.http.util.EntityUtils.toString(response.getEntity());
- Cómo cambiar mediante programación la imagen de fondo de una actividad de Android
- Cambiar el indicador de color en SlidingTabLayout