java - 读取Java中的错误响应主体

标签 java http httpurlconnection

在 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/

相关文章:

php - 没有在 XAMPP 中运行的基本 PHP 程序

java - Android:将 httpURLConnection 连接到服务器

Java Android 如何在Exception 中获取HTTPUrlConnection (POST) 响应代码和消息?

java - 循环条件变量的最佳实践

java - 如何防范XXE攻击

http - 来自 Retrofit 的 POST 请求以意想不到的方式工作

javascript - 如何在d3 xhr发送请求中指定超时

hadoop - OOZIE : Connection exception has occurred [ java.net.ConnectException 连接被拒绝(连接被拒绝)]

Java代码、ASCII艺术、switch语句/结构、输入字符然后将其打印在屏幕上

java - 在一个 jvm 中运行多个 Spring Boot jar