obtener el cuerpo de la Solicitud incorrecta httpURLConnection.getInputStream ()

He trabajado en un portlet que utiliza el servicio web Restful para obtener información. por lo tanto, cuando llamo al servicio web y no existía el ID de persona, devuelve un mensaje de error apropiado en formato json (con Código de solicitud errónea - 400), y si el ID de persona es válido, devuelve la información de persona en json (con código 200).

ahora, ¿cómo puedo leer el cuerpo de la respuesta (que contiene la descripción del error) porque invocar "httpConn.getInputStream ()" generará una excepción en el modo de solicitud incorrecta?

esta parte de mi código:

HttpURLConnection httpConn = null;
URL url = new URL("http://192.168.1.20/personinfo.html?id=30");   
URLConnection connection = url.openConnection();
httpConn = (HttpURLConnection) connection;
httpConn.setRequestProperty("Accept", "application/json");
httpConn.setRequestMethod("GET");
httpConn.setRequestProperty("charset", "utf-8");
System.out.println("befor getInputStream *******");
BufferedReader br = null;
if (!(httpConn.getResponseCode() == 400)) {
     br = new BufferedReader(new InputStreamReader((httpConn.getInputStream())));
     String output;
     StringBuilder builder = new StringBuilder();
     System.out.println("Output from Server .... \n");
     while ((output = br.readLine()) != null) 
          builder.append(output);
     return builder.toString();
}else
   here must detect error message. :)

Respuestas a la pregunta(3)

Su respuesta a la pregunta