Bien, me he conectado con éxito a un servidor remoto y he recibido una respuesta HTTP/1.1 200 OK
y la respuesta está empaquetada en el objeto HttpResponse. ¿Ahora cómo obtengo los datos en la respuesta, específicamente el JSON que se envió desde el servidor?extraer el cuerpo del mensaje de HttpResponse
13
A
Respuesta
24
algo como esto: duplicar aquí: How do I parse JSON from a Java HTTPResponse?
HttpResponse response; // some response object
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String json = reader.readLine();
JSONTokener tokener = new JSONTokener(json);
JSONArray finalResult = new JSONArray(tokener);
4
Bien, puede obtener el cuerpo del HttpResponse
llamando al getEntity()
que devuelve un objeto del tipo HttpEntity
. A continuación, querrá consumir el InputStream
que se devuelve desde el método getContent()
del HttpEntity
. Yo lo haría así:
public static String entityToString(HttpEntity entity) {
InputStream is = entity.getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
StringBuilder str = new StringBuilder();
String line = null;
try {
while ((line = bufferedReader.readLine()) != null) {
str.append(line + "\n");
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try {
is.close();
} catch (IOException e) {
//tough luck...
}
}
return str.toString();
}
0
Utilice un BasicResponseHandler al llamar httpclient.execute()
ResponseHandler <String> resonseHandler = new BasicResponseHandler();
String response = httpclient.execute(httpget, resonseHandler);
1
También puede utilizar EntityUtils
response = cl.execute(p); //cl is http client and p is the post request
if(response.getStatusLine().getStatusCode()==200)
{
try
{
String resp_body = EntityUtils.toString(response.getEntity());
Log.v("resp_body", resp_body.toString());
JSONObject jsobj = new JSONObject(resp_body);
}
catch(Exception e)
{
Log.e("sometag",e.getMessage());
}
}
PS: Es posible que tenga que hacer esto en un subproceso diferente al del subproceso principal, como en el doInBackground() de una operación AsyncTask o una operación de red en la excepción de subproceso principal.
Cuestiones relacionadas
- 1. Cómo extraer el cuerpo del mensaje HTTP en BaseHTTPRequestHandler.do_POST()?
- 2. Cuerpo del mensaje en un mensaje 404
- 3. ¿Cómo imprimir el mensaje devuelto de HttpResponse?
- 4. Obtenga el cuerpo de un mensaje WCF
- 5. conseguir el cuerpo de la respuesta de HttpResponse
- 6. Lea el cuerpo del mensaje WCF dos veces: "No se puede leer el mensaje"
- 7. php extraer texto/plano del cuerpo del correo
- 8. Amazon SNS -> cuerpo del mensaje SQS
- 9. cómo formatear el cuerpo del mensaje de correo electrónico?
- 10. Establecer una cadena en un cuerpo de httpResponse
- 11. Extraer texto del cuerpo del correo electrónico PHP
- 12. Zend_Mail con personajes franceses en el cuerpo del mensaje
- 13. (fragmentada) HTTP cuerpo del mensaje binario y CRLFs
- 14. Extraer certificado público del mensaje SMIME (pkcs7-signature) con OpenSSL
- 15. Cómo extraer el mensaje de error de PDO?
- 16. ¿Es posible extraer ddl de un paquete sin el cuerpo del paquete
- 17. Expresión regular para extraer contenido de cuerpo HTML
- 18. Extracto de cuerpo SOAP de un mensaje SOAP
- 19. Ajuste de los dos mensaje de error y el cuerpo del servlet
- 20. signo de admiración aparece en el cuerpo del mensaje de correo electrónico usando phpmailer
- 21. C# de SOAP - Error en deserializar el cuerpo del mensaje de respuesta (Magento API)
- 22. MFMailComposeViewController: cómo incrusto un enlace URL seleccionable en el cuerpo del mensaje de correo electrónico
- 23. Error al deserializar el cuerpo del mensaje de respuesta para la operación
- 24. Gema del correo - cómo limpiar la cadena del cuerpo
- 25. ¿Cómo cambiar texto repetitivo "Enviado desde mi iPhone" en el cuerpo del mensaje MFMailViewController?
- 26. Problema al enviar un correo electrónico con Codeigniter - Encabezados enviados en el cuerpo del mensaje
- 27. ¿Cómo rastrear el tamaño del mensaje WCF?
- 28. Python: Recuperando solo el texto del mensaje POP3, sin encabezados
- 29. obtener json de HttpResponse
- 30. HTTP 302 Redirigir: ¿se necesita un cuerpo de mensaje?