2013-06-27 37 views
0

我用URLConnection发送POST请求到服务器,并且我使用下面的代码来读取响应:如果服务器返回502错误,我该如何读取HTTP响应?

String line; 
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
while ((line = reader.readLine()) != null) { 
    response += line; 
} 
reader.close(); 

但是,服务器有时会返回一个502错误会在响应一个有意义的错误消息,我想获得。我的问题是,试图在这种情况下创建BufferedReader将导致java.io.IOException

Server returned HTTP response code: 502 for URL: <url> 

我怎样才能绕过这个?

回答

3

修改沿着这些线路代码,这样就可以得到errorstream而不是抛出IOException异常

HttpURLConnection httpConn = (HttpURLConnection)connection; 
InputStream is; 
if (httpConn.getResponseCode() >= 400) { 
    is = httpConn.getErrorStream(); 
} else { 
    is = httpConn.getInputStream(); 
} 

BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
while ((line = reader.readLine()) != null) { 
    response += line; 
} 
reader.close(); 
+0

这做的伎俩。谢谢。 – NoToast

相关问题