コード

このソースでのステータスコードの判定は、下記のOracleのバグレポートへの回答を参考にしました。(https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4513568

回答によると、

  • ステータスコード<400
    getInputStream()を使う
  • ステータスコード≥400
    getErrorStream()を使う

となっています。バグレポートのケース(Soap)のみに対する回答なのか、はっきりしない部分もあると感じます。

ステータスコードによってInputStreamを取得するメソッドの使い分けを判定したくない場合は、

try{
InputStream _is = con.getInputStream();
}catch(Exception e){
try{
InputStream _is = con.getErrorStream();
}catch(Exception e){
}
}

try{
InputStream _is = con.getErrorStream();
if(_is == null){
_is = con.getInputStream();
}
}catch(Exception e){
}

のような実装が考えられそうです。

--

--

Medium Intro for myself.

Type triple back ticks(```), or Ctrl + Alt + 6

for code blocks.

Select your text and type at(@) for inline codes.

You can also just paste external GitHub gist links and press Enter to embed your codes.

Most other rules are similar to .md…

--

--