0

HttpURLConnection で getInputStream() メソッドを呼び出すと、HTTP 例外が返され、この戦略を使用してその例外をキャッチします。

try {
   con.getInputStream();
} catch (IOException e) {
   resStream = con.getErrorStream();
}

ただし、JavaDoc が次のように述べているように、サーバーによって resStream に送信される有用なデータを取得する必要があります。「接続に失敗したがサーバーが有用なデータを送信した場合、エラー ストリームを返します。」

getErrorStream() から返された InputStream から応答メッセージを取得する方法はありますか (戻り値が null ではなく、有効な応答が返された場合)。

4

1 に答える 1

1

このバイト ストリームを文字ストリームにラップし、エラー情報を読み取るだけです。

InputStreamReader isr = new InputStreamReader(resStream);
BufferedReader br = new BufferedReader(isr);
StringBuffer buf = new StringBuffer();
String line = null;
while((line = buf.readLine()) != null) {
    buf.append(line);
}
//assume you have a log object, you'd better not use System.out.println()
log.error(buf.toString());
//do not forget to close all the stream

次に、サーバー側からスタック トレースを取得できます。これが役立つことを願っています。

于 2013-03-29T08:10:25.727 に答える