【问题标题】:How do I read a HTTP response if the server returned a 502 error?如果服务器返回 502 错误,我如何读取 HTTP 响应?
【发布时间】:2013-06-27 20:14:34
【问题描述】:

我使用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>

我怎样才能绕过这个?

【问题讨论】:

    标签: java http post request response


    【解决方案1】:

    按照这些行修改您的代码,以便您可以获取错误流而不是抛出 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();
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 2018-02-13
      • 2021-04-29
      • 2021-11-29
      • 1970-01-01
      相关资源
      最近更新 更多