我使用URLConnection
向服务器发送POST请求,我使用以下代码来读取响应:
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>
如何绕过这个?
答案 0 :(得分: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();