Bir web hizmetini test etmek için Postman Chrome uzantısını kullanıyorum.
Veri girişi için üç seçenek vardır.
Sanırım raw
JSON göndermek için.
Diğer ikisi arasındaki fark nedir form-data
ve x-www-form-urlencoded
?
Bir web hizmetini test etmek için Postman Chrome uzantısını kullanıyorum.
Veri girişi için üç seçenek vardır.
Sanırım raw
JSON göndermek için.
Diğer ikisi arasındaki fark nedir form-data
ve x-www-form-urlencoded
?
Yanıtlar:
Bunlar, W3C tarafından tanımlanan farklı Form içerik türleridir. Basit metin / ASCII verileri göndermek istiyorsanız, x-www-form-urlencoded çalışır. Bu varsayılan ayardır.
Ancak ASCII olmayan metin veya büyük ikili veri göndermek zorundaysanız, form verileri bunun içindir.
Düz metin veya JSON veya başka bir dize göndermek istiyorsanız Raw'u kullanabilirsiniz . Adından da anlaşılacağı gibi, Postacı ham dize verilerinizi değişiklik yapmadan olduğu gibi gönderir. Gönderdiğiniz veri türü, açılır menüden içerik türü üstbilgisi kullanılarak ayarlanabilir.
İkili , bir video / ses dosyası, görüntüler veya başka bir ikili veri dosyası gibi isteğe metinsel olmayan veriler eklemek istediğinizde kullanılabilir.
Daha fazla okuma için bu bağlantıya bakın: HTML belgelerindeki formlar
Bu daha iyi açıklıyor: Postacı belgeleri
Talep gövdesi
İstekleri oluştururken, istek gövdesi editörü ile çok uğraşıyorsunuz. Postacı neredeyse her türlü HTTP isteğini göndermenizi sağlar (Bir şey gönderemiyorsanız bize bildirin!). Gövde editörü 4 alana ayrılmıştır ve gövde tipine bağlı olarak farklı kontrollere sahiptir.
form verisi
multipart / form-data, bir web formunun veri aktarmak için kullandığı varsayılan kodlamadır.Bu, bir web sitesinde bir form doldurmayı ve göndermeyi simüle eder. Form-veri düzenleyicisi, verileriniz için anahtar / değer çiftlerini (anahtar / değer düzenleyicisini kullanarak) ayarlamanıza olanak tanır. Bir anahtara da dosya ekleyebilirsiniz. HTML5 spesifikasyonunun kısıtlamaları nedeniyle dosyaların geçmişte veya koleksiyonlarda saklanmadığını unutmayın. İstek gönderilirken dosyayı tekrar seçmeniz gerekir.urlencoded
Bu kodlama, URL parametrelerinde kullanılan kodlamayla aynıdır. Anahtar / değer çiftlerini girmeniz yeterlidir, Postacı anahtarları ve değerleri doğru şekilde kodlar. Bu kodlama moduyla dosya yükleyemeyeceğinizi unutmayın. Form verileri ve urlencoded arasında bir karışıklık olabilir, bu yüzden önce API'nıza danışın.
çiğ
Ham bir istek herhangi bir şey içerebilir. Postacı, ortam değişkenlerini değiştirmek dışında ham düzenleyiciye girilen dizeye dokunmaz. Metin alanına koyduğunuz her şey istekle birlikte gönderilir. Ham düzenleyici, biçimlendirme türünü ve ham gövdeyle birlikte göndermeniz gereken doğru üstbilgiyi ayarlamanıza olanak tanır. İçerik Türü başlığını da manuel olarak ayarlayabilirsiniz. Normalde, buraya XML veya JSON verileri gönderirsiniz.
ikili
İkili veriler, Postacı'ya giremediğiniz şeyleri göndermenizi sağlar. Örneğin, görüntü, ses veya video dosyaları. Metin dosyaları da gönderebilirsiniz. Form-veri bölümünde daha önce de belirtildiği gibi, geçmiş veya koleksiyon yoluyla bir istek yüklüyorsanız dosyayı yeniden bağlamanız gerekir.
GÜNCELLEME
Tarafından sivri dışarı olarak VKK , WHATWG spec urlencoded formlar için varsayılan kodlama türü olduğunu söylüyorlar.
Bu öznitelikler için varsayılan değer, application / x-www-form-urlencoded durumudur. Enctype özniteliği için varsayılan değer eksik olan uygulama / x-www-form-urlencoded durumudur.
Content-Type: application/json
; ve aynı başlık gibi json olarak girilen ham veriler ? {foo: bar}
Content-Type: application/json
Çok parçalı / form-
Not. Dosya yüklemeleri hakkında geriye dönük uyumluluk sorunları, "çok parçalı / form verileri" ile diğer içerik türleri, performans sorunları vb. Arasındaki ilişki de dahil olmak üzere ek bilgi için lütfen RFC2388'e başvurun .
Formlarla ilgili güvenlik sorunları hakkında bilgi için lütfen eke bakın.
"Application / x-www-form-urlencoded" içerik türü, büyük miktarlarda ikili veri veya ASCII olmayan karakterler içeren metin göndermek için yetersizdir. "Çok bölümlü / form verisi" içerik türü, dosyaları, ASCII olmayan verileri ve ikili verileri içeren formları göndermek için kullanılmalıdır.
"Çok bölümlü / form verileri" içerik türü, RFC2045'te ana hatlarıyla belirtildiği gibi tüm çok bölümlü MIME veri akışlarının kurallarına uyar . "Çok bölümlü / form-veri" tanımı [IANA] kayıt defterinde mevcuttur.
"Çok parçalı / form verisi" mesajı, her biri başarılı bir kontrolü temsil eden bir dizi parça içerir. Parçalar, karşılık gelen kontrollerin belge akışında göründüğü sırayla işleme ajanına gönderilir. Verilerin hiçbirinde parça sınırları oluşmamalıdır; bunun nasıl yapılacağı bu şartnamenin kapsamı dışındadır.
Tüm çok parçalı MIME türlerinde olduğu gibi, her bölüm varsayılan olarak "metin / düz" olarak ayarlanan isteğe bağlı bir "İçerik Türü" başlığına sahiptir. Kullanıcı aracıları, "charset" parametresiyle birlikte "Content-Type" başlığını sağlamalıdır.
Uygulama / x-www-form-urlencoded
Bu, varsayılan içerik türüdür. Bu içerik türüyle gönderilen formlar aşağıdaki gibi kodlanmalıdır:
Kontrol adları ve değerleri kaçtı. Boşluk karakterleri +', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by
% HH ', bir yüzde işareti ve karakterin ASCII kodunu temsil eden iki onaltılık basamak ile değiştirilir. Satır sonları "CR LF" çiftleri olarak temsil edilir (yani, %0D%0A').
The control names/values are listed in the order they appear in the document. The name is separated from the value by
= 've ad / değer çiftleri birbirinden `` &' 'ile ayrılır.
application/x-www-form-urlencoded
sunucuya gönderilen HTTP iletisinin gövdesi temelde bir dev sorgu dizesidir - ad / değer çiftleri ve işareti (&) ile ayrılır ve adlar eşittir simgesiyle (=) değerlerden ayrılır. Buna bir örnek:
MyVariableOne=ValueOne&MyVariableTwo=ValueTwo
İçerik türü "application /-form-urlencoded x-www" ASCII olmayan karakterler içeren ikili veri veya metin büyük miktarlarda göndermek için verimsizdir. "Çok bölümlü / form verisi" içerik türü, dosyaları, ASCII olmayan verileri ve ikili verileri içeren formları göndermek için kullanılmalıdır.
İşte Postacı'nın istekte ilettiği ham metni görmek için bazı ek örnekler. Postacı konsolunu açarak bunu görebilirsiniz:
Başlık
content-type: multipart/form-data; boundary=--------------------------590299136414163472038474
Vücut
key1=value1key2=value2
Başlık
Content-Type: application/x-www-form-urlencoded
Vücut
key1=value1&key2=value2
Başlık
Content-Type: text/plain
Vücut
This is some text.
Başlık
Content-Type: application/json
Vücut
{"key1":"value1","key2":"value2"}
binary
.