すべての有効なHTTP応答コードのシンボリック定数を定義する標準のJavaクラスライブラリに列挙型があるかどうか疑問に思っています。対応する整数値との変換をサポートする必要があります。
Javax.ws.rs.core.Response.Statusを使用するいくつかのJavaコードをデバッグしています。動作しますが、有効なHTTP応答コードの約半分しか定義していません。
標準のJavaクラスには完全なものはないと思います。 HttpURLConnection
は、HTTP 100/Continue
のような非常に多くのコードが欠落しています。
ただし、Apache HttpComponentsには完全なリストがあります。org.Apache.http.HttpStatus
(置換 org.Apache.commons.HttpClient.HttpStatus
Apache Httpクライアントから サポート終了 )
サーブレットAPIのインターフェイスjavax.servlet.http.HttpServletResponse
には、int
定数名SC_<description>
の形式のすべての応答コードがあります。 http://docs.Oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html を参照してください
さて、 HttpURLConnection クラスには正確な整数値の静的定数があります
Springを使用している場合、3.xリリースには次のものがあります。 http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/http/HttpStatus。 html
Javax.servlet.http.HttpServletResponseクラスを使用する
例:
javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED //401
javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR //500
Nettyを使用している場合、以下を使用できます。
誰もがあなたの質問の「列挙型」の部分を無視しているようです。
HTTPステータスコードの正規のソースはありませんが、プロジェクトに追加の依存関係を追加せずに、javax.ws.rs.core.Response.Status
によって提供されるものに必要な不足しているステータス定数をaddする簡単な方法があります。
javax.ws.rs.core.Response.Status
は、javax.ws.rs.core.Response.StatusType
インターフェイスの実装の1つにすぎません。必要なステータスコードの定義を使用して、独自の実装列挙を作成するだけです。
Javax、Jerseyなどのコアライブラリは、interfaceStatusType
に書き込まれます。implementationStatus
(またはそれらは確かにshouldbe)。新しいStatus列挙型はStatusType
を実装しているため、javax.ws.rs.core.Response.Status
定数を使用するあらゆる場所で使用できます。
独自のコードもStatusType
インターフェイスに書き込む必要があることを覚えておいてください。これにより、独自のステータスコードと「標準」ステータスコードの両方を使用できるようになります。
「情報1xx」ステータスコード用に定義された定数を使用した簡単な実装の要点は次のとおりです。 https://Gist.github.com/avendasora/a5ed9acf6b1ee709a14a
1)コードのみを持っている場合、理由textを取得するには、次を使用できます。
org.Apache.http.impl.EnglishReasonPhraseCatalog.INSTANCE.getReason(httpCode,null)
httpCode
は、HTTP応答から取得した理由コードです。
詳細については、 https://hc.Apache.org/httpcomponents-core-ga/httpcore/apidocs/org/Apache/http/impl/EnglishReasonPhraseCatalog.html を参照してください
2)テキストのみがある場合に理由codeを取得するには、BasicHttpResponse
を使用できます。
詳細はこちらをご覧ください: https://hc.Apache.org/httpcomponents-core-ga/httpcore/apidocs/org/Apache/http/message/BasicHttpResponse.html
Restlet Statusクラスも確認してください。
http://www.restlet.org/documentation/1.1/api/org/restlet/data/Status.html
別のオプションは、Apache commons-httpclientのHttpStatus
クラスを使用して、さまざまなHttpステータスを定数として提供することです。
Httpステータスコード定数の最適なプロバイダーは、Jettyのorg.Eclipse.jetty.http.HttpStatusクラスである可能性があります。理由は次のとおりです。
私が改善するのは、コードを開始するときに自動補完検索をより便利にするために、テキストの説明の前にステータスコード番号を置くことだけです。