0

以前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>

どうすればこれをバイパスできますか?

4

1 に答える 1

3

これらの行に沿ってコードを変更して、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();
于 2013-06-27T20:20:02.460 に答える