有効なすべてのHTTP応答コードのシンボリック定数を定義する標準Javaクラスライブラリに列挙型があるのだろうかと思います。対応する整数値との変換をサポートする必要があります。JavaにはHTTP応答コードの完全な列挙型がありますか?
私は、javax.ws.rs.core.Response.Statusを使用するいくつかのJavaコードをデバッグしています。これは動作しますが、有効なHTTP応答コードの約半分しか定義していません。
有効なすべてのHTTP応答コードのシンボリック定数を定義する標準Javaクラスライブラリに列挙型があるのだろうかと思います。対応する整数値との変換をサポートする必要があります。JavaにはHTTP応答コードの完全な列挙型がありますか?
私は、javax.ws.rs.core.Response.Statusを使用するいくつかのJavaコードをデバッグしています。これは動作しますが、有効なHTTP応答コードの約半分しか定義していません。
の正確な整数値の静的定数がある私は、標準のJavaクラスで完全だ1がないと思います。 HttpURLConnection
には、HTTP 100/Continue
のようなかなりのコードがありません。しかし、Apache Commonsには完全なリストがあります:org.apache.commons.HttpClient.HttpStatus
。
更新: Apache Commons HttpClientはend of lifeです。ステータスコードのリストについては、Apache HttpComponentsでorg.apache.http.HttpStatus
を使用してください。
まあ、HttpURLConnectionクラス
サーブレットAPIのインターフェイスjavax.servlet.http.HttpServletResponse
は、int
の定数名SC_<description>
の形式のすべての応答コードを持っています。
http://www.restlet.org/documentation/1.1/api/org/restlet/data/Status.html
HttpServletResponseはRFC1945とRFC2616標準の一部をサポートしていますが、RFC2518のすべてがありません。完全なリストが必要な場合は、前述のようにHttpStatusを参照してください。 –
HttpServletResponseには、[RFC 2324](https://tools.ietf.org/html/rfc2324)に定義されている418応答コードもありません。 – megaflop
またのRestletステータスクラスをチェックアウトを参照してください。 servlet.http.HttpServletResponseクラス
例:
javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED //401
javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR //500
再度、ステータスコードは拡張可能であるため、新しいステータスコードがIANAレジストリ(http://www.iana.org/assignments/http-status-codes)に追加されるたびに改訂されない限り、「完全な」リストを作成することはできません。 –
あなたが春を使用している場合は、3.xのリリースがあなたが探して何を持っている: http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/http/HttpStatus.html
私はそのスプリングorg.springframework.http.HttpStatus(https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/HttpStatus.html)enumを追加したいと思います。私が見つけた唯一のものは、Java文書にステータスコードの完全なリストへのリンクと各列挙型でのその使用法に関する情報を提供しています。 既にSpringを使用している場合は、これが使用するライブラリになります。 – lastmannorth
を開発するには、これらのコードを取得するだけでサーブレットAPI全体を組み込むのは面倒です。 –
場合によっては負担になるかもしれませんが、私はこの良い答えを見つけました。私はサーブレットベースのWebアプリケーションを作成しています。 –
重複した回答は、3年後に投稿されましたか?削除する必要があります。 – zb226
ので、HTTPステータスコード定数のための最高のプロバイダは桟橋のorg.eclipse.jetty.http.HttpStatusクラスである可能性が高い:あなたが検索する場合に重要であるMavenの中のJavadocパッケージがある
私が改善する点は、ステータスコード番号をテキストの説明の前に置き、コードで始めるときに自動補完検索をより便利にすることです。
別のオプションは、様々なHttpステータスを定数として提供するApache commons-httpclientのクラスHttpStatus
を使用することです。
もう1つの回答が既に重複しています – Nathan
あなたはネッティーを使用している場合は、使用することができます。
残念ながら、これは列挙型ではないため、ケースステートメントでは使用できません(これは私を悲しくします) –
皆さんの質問の「列挙型」の部分は無視されているようです。
HTTPステータスコードのための標準的なソースはありませんがへの簡単な方法はありにあなたがあなたのプロジェクトに追加の依存関係を追加することなく、javax.ws.rs.core.Response.Status
が提供するものに必要なすべての不足している状況定数を追加します。
javax.ws.rs.core.Response.Status
は、javax.ws.rs.core.Response.StatusType
インターフェイスの1つの実装です。必要なステータスコードの定義で、独自の実装列挙型を作成するだけで済みます。などのjavax、ジャージーなど
コアライブラリがインタフェースStatusType
に書き込まれていない実装Status
(または、彼らは確かにはする必要があります)。あなたの新しいステータスenumはStatusType
を実装しているので、どこでも使用できます。javax.ws.rs.core.Response.Status
定数を使用します。
あなた自身のコードもStatusType
インターフェイスに書き込まれることを覚えておいてください。これにより、あなたは "標準"の側にあなたの両方のステータスコードを使用することができます。あなたが唯一のコードがある場合テキストは、あなたが使用することができた理由を取得するにはhttps://gist.github.com/avendasora/a5ed9acf6b1ee709a14a
1):
ここは、「情報の1xx」ステータスコードのために定義された定数との単純な実装との主旨です
org.apache.http.impl.EnglishReasonPhraseCatalog.INSTANCE.getReason(httpCode,null)
ここで、httpCode
は、HTTP応答から取得したコードです。
は、あなたがテキストのみを持っている場合、あなたはBasicHttpResponse
を使用することができた理由コードを取得するために、詳細 )のためhttps://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/impl/EnglishReasonPhraseCatalog.htmlを参照してください。
詳細はこちらをご覧ください。https://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/message/BasicHttpResponse.html
ステータスコードが拡張される可能性があるので、"完全なリスト "のようなものはありません。 –
@JulianReschke私は、ここで「完全」とは、「標準で概説されているすべてのコードに準拠している」ことを意味すると考えるべきです。 –
ジョン: "標準"はステータスコードの "すべて"を定義していません。だからこそレジストリがあるのです。 –