在 Java 中,当 HTTP 结果为 404 范围时,此代码会引发异常:
URL url = new URL("http://stackoverflow.com/asdf404notfound");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.getInputStream(); // throws!
就我而言,我碰巧知道内容是 404,但我仍然想阅读响应的正文。
(在我的实际情况中,响应代码是 403,但响应正文解释了拒绝的原因,我想将其显示给用户。)
如何访问响应正文?
最佳答案
Here is the bug report (关闭,不会修复,不是错误)。
他们的建议是这样编码:
HttpURLConnection httpConn = (HttpURLConnection)_urlConnection;
InputStream _is;
if (httpConn.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
_is = httpConn.getInputStream();
} else {
/* error from server */
_is = httpConn.getErrorStream();
}
关于java - 读取Java中的错误响应主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57622507/