我正在使用Restful Web服务获取信息的portlet.因此,当我调用webservice并且人员ID不存在时,它会以json格式返回相应的错误消息(Bad请求代码为400),如果person id有效,则返回json中的人员信息(代码为200).
现在,我如何读取响应体(包含错误描述),因为调用"httpConn.getInputStream()"将在错误请求模式下抛出异常.
这部分代码:
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. :)
Run Code Online (Sandbox Code Playgroud)