Content-Type
Bir HTTP isteğine iletmeden önce üstbilgi değerini doğrulamalıyım .
İçin tüm olası değerler için belirli bir liste var mı Content-Type
?
Aksi takdirde, içerik türünü bir HTTP isteğinde kullanmadan önce doğrulamanın bir yolu var mı?
Content-Type
Bir HTTP isteğine iletmeden önce üstbilgi değerini doğrulamalıyım .
İçin tüm olası değerler için belirli bir liste var mı Content-Type
?
Aksi takdirde, içerik türünü bir HTTP isteğinde kullanmadan önce doğrulamanın bir yolu var mı?
Yanıtlar:
Her içerik türünü burada bulabilirsiniz: http://www.iana.org/assignments/media-types/media-types.xhtml
En yaygın tip:
Tip uygulaması
application/java-archive
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
Ses yazın
audio/mpeg
audio/x-ms-wma
audio/vnd.rn-realaudio
audio/x-wav
Görüntü yazın
image/gif
image/jpeg
image/png
image/tiff
image/vnd.microsoft.icon
image/x-icon
image/vnd.djvu
image/svg+xml
Çok parçalı yazın
multipart/mixed
multipart/alternative
multipart/related (using by MHTML (HTML mail).)
multipart/form-data
Metin yaz
text/css
text/csv
text/html
text/javascript (obsolete)
text/plain
text/xml
Video yazın
video/mpeg
video/mp4
video/quicktime
video/x-ms-wmv
video/x-msvideo
video/x-flv
video/webm
Vnd yazın:
application/vnd.android.package-archive
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
Şöyle tanımlanır içinde RFC 1341 :
RFC 822'nin Genişletilmiş BNF gösterimlerinde, İçerik Türü başlık alanı değeri aşağıdaki gibi tanımlanır:
İçerik Türü: = "/" alt türü * [";" yazın parametre]
type: = "uygulama" / "ses" / "görüntü" / "mesaj" / "çok bölümlü" / "metin" / "video" / x-token
x-token: = <Aradaki boşluk olmadan, "X-" karakterini takiben herhangi bir belirteç>
alt tür: = belirteç
parametre: = özellik "=" değer
özellik: = belirteç
value: = simge / alıntılanan dize
jeton: = 1 *
tspecials: = "(" / ")" / "<" / ">" / "@"; / "," / ";" İçinde olmalıdır / ":" / "\" / <">; alıntılanan dize, /" / "/" ["/"] "/"? "/". "; /" = "; parametre değerleri içinde kullanmak için
Ve onu takip edebilecek bilinen MIME türlerinin bir listesi (veya Joe'nun belirttiği gibi IANA kaynağı ).
Gördüğünüz gibi liste hepsine karşı onaylayamayacak kadar büyük. Yapabileceğiniz şey, type
doğru olduğundan (seçenekler kümesi küçüktür) emin olmak için genel formata ve özniteliğe göre doğrulamaktır ve sadece aşağıdakilerin doğru olduğunu varsayalım (ve elbette koyduğunuzda karşılaşabileceğiniz istisnaları yakalayın) gerçek kullanıma).
Ayrıca yukarıdaki yoruma da dikkat edin:
Herhangi bir nedenle başka bir birincil tür kullanılacaksa, standart dışı durumunu belirtmek ve gelecekteki bir resmi adla olası çakışmaları önlemek için "X-" ile başlayan bir ad verilmelidir.
Çok sayıda HTTP isteğinin / yanıtınınX-
kendi tanımladığı bir tür başlık içerdiğini fark edeceksiniz , türleri doğrularken bunu aklınızda bulundurun.
Mümkün olan "İçerik türü" değerlerin bir alt kümesini kapsamayı hedefliyorum, sorunuz bilinen içerik türlerini tanımlamaya odaklanıyor gibi görünüyor.
@Jeroen RFC 1341 referansı harika, ancak oldukça kapsamlı bir liste için IANA burada resmi olarak kayıtlı medya türlerinin bir web sayfasını tutar .
Eğer jaxrs veya başka bir şey kullanıyorsanız, isteği göndermeden önce mediatype.User interceptor adlı bir sınıf olacaktır ve bunu karşılaştırınız.