HTTPリクエストに渡す前に、Content-Type
ヘッダー値を検証する必要があります。
Content-Type
のすべての可能な値についての特定のリストはありますか?
それ以外の場合、HTTPリクエストで使用する前にコンテンツタイプを検証する方法はありますか?
あなたはここですべてのコンテンツタイプを見つけることができます: http://www.iana.org/assignments/media-types/media-types.xhtml
最も一般的なタイプは以下のとおりです。
タイプ申請
application/EDI-X12
application/EDIFACT
application/javascript
application/octet-stream
application/ogg
application/pdf
application/xhtml+xml
application/x-shockwave-flash
application/json
application/ld+json
application/xml
application/Zip
application/x-www-form-urlencoded
音声を入力
audio/mpeg
audio/x-ms-wma
audio/vnd.rn-realaudio
audio/x-wav
画像を入力
image/gif
image/jpeg
image/png
image/tiff
image/vnd.Microsoft.icon
image/x-icon
image/vnd.djvu
image/svg+xml
マルチパートタイプ
multipart/mixed
multipart/alternative
multipart/related (using by MHTML (HTML mail).)
multipart/form-data
テキストを入力
text/css
text/csv
text/html
text/javascript (obsolete)
text/plain
text/xml
動画を入力
video/mpeg
video/mp4
video/quicktime
video/x-ms-wmv
video/x-msvideo
video/x-flv
video/webm
Vndと入力します。
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.graphics
application/vnd.ms-Excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.ms-PowerPoint
application/vnd.openxmlformats-officedocument.presentationml.presentation
application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.mozilla.xul+xml
RFC 822の拡張BNF表記では、Content-Typeヘッダーフィールド値は次のように定義されています。
Content-Type:= type "/"サブタイプ* [";"パラメータ]
タイプ:= "アプリケーション"/"オーディオ"/"画像"/"メッセージ"/"マルチパート"/"テキスト"/"ビデオ"/x-token
x-token:= <2つの文字 "X-"の後ろに空白を入れずに、任意のトークンを続けます>
サブタイプ:=トークン
パラメータ:=属性 "="値
属性:=トークン
値:=トークン/引用符付き文字列
トークン:= 1 *
tspecials:= "("/")"/"<"/">"/"@";/"、"/";にする必要があります。/":"/"\"/<">;引用符付き文字列、/"/"/" ["/"] "/"? "/"。 "; /" = "内で使用する場合、パラメータ値
そして それに続くことができる既知のMIMEタイプのリスト (または、Joeのコメントとしては IANAのソース ))。
ご覧のとおり、リストはそれらすべてに対して検証するには大きすぎます。できることは、一般的な形式とtype
属性を検証して、それが正しいこと(オプションのセットが小さいこと)を確認し、それに続くものが正しいと仮定することです(もちろん、実行時に発生する可能性のある例外をキャッチします)。実際の使用には).
上記のコメントにも注意してください。
他の基本型が何らかの理由で使用される場合は、その非標準のステータスを示し、将来の正式名との潜在的な競合を避けるために "X-"で始まる名前を付ける必要があります。
多くの HTTPリクエスト/レスポンス には、自己定義されたある種のX-
ヘッダーが含まれていることに気付くでしょう。型を検証するときにはこのことを頭に入れておいてください。
私は可能性のある "Content-type"値のサブセットをカバーすることを目的とするでしょう、あなたはあなたの質問が既知のコンテンツタイプを識別することに集中しているようです。
@Jeroen RFC 1341の参照は素晴らしいですが、かなり網羅的なリストのためにIANAは公式に登録されたメディアタイプのWebページを保持しています ここ 。
あなたがjaxrsまたは他のものを使用しているならば、リクエストを送る前にmediatype.Userインターセプターと呼ばれるクラスがあるでしょう、そしてこれに対してそれを比較してください。