2012-02-29 2 views
1

私は、インターフェイスを介して2つのメソッドを公開するJavaスタンドアロンアプリケーションを持っています:get - URLへのGETリクエストを作成し、POSTリクエストをURLに送ります。私はメソッドを実装するために純粋なJavaを使用しています(Apache HTTPクライアントなし)。HTTPエラーコードでIOExceptionがキャッチされました。

私の問題は、サーバーからのHTTPエラーが返されたとき、私はIOExceptionクライアント側(すべてのコード> = 400)を取得することです。これが正しい行動であるかどうかを議論するのはちょっとしたことです(私はそうではありません)。 いずれにしても、これら2つの状況に対して異なる動作を実装する必要があるため、接続エラーまたはHTTPエラーによってIOExceptionが発生したかどうかを確認する必要があります。誰もこれをチェックするためのまともなソリューションを知っていますか? (まともなことは、例外メッセージ「サーバーはHTTP応答コードを返しました」を確認することを意味しないことを意味する)

すべてのアイデアは本当に感謝しています。

ありがとうございました。

答えて

3

例外文字列を解析する以外に多くのことができます。 HttpURLConnectionのソースを見ると:

  if (respCode >= 400) { 
       if (respCode == 404 || respCode == 410) { 
        throw new FileNotFoundException(url.toString()); 
       } else { 
        throw new java.io.IOException("Server returned HTTP" + 
          " response code: " + respCode + " for URL: " + 
          url.toString()); 
       } 
      } 

これはあまり役に立ちません。

関連する問題