Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 12455|Yanıt: 1

HTTP isteği başlığı Expect ayrıntılı olarak açıklanmıştır

[Bağlantıyı kopyala]
2021-4-22 tarihinde 15:32:09 tarihinde yayınlandı | | |
Belge Tanıtımı:Bağlantı girişi görünür.

Karşı tarafın arayüzünü curl üzerinden çağırdığımda, zaman aşımı fenomeninin çok ciddi olduğu anlaşıldı, bu yüzden karşı tarafın arayüz kişisine sordum, diğer taraf da eklemenin gerekli olduğunu söyledi:


Ekledikten sonra gerçekten iyi çalıştığını gördüm ve nasıl kullanacağımı araştırdım. POST için curl kullanılırken, "POST veri 1024 bayttan büyükse", curl doğrudan bir POST talebi başlatmaz, ancak 2 adıma ayrılır:

Expect: 100-continue

1. Sunucudan veriyi kabul etmesi için Expect:100-continue içeren bir istek gönderin

2. Sunucu tarafından geri gönderilen 100-devam cevabı alındıktan sonra, veriler Sunucuya POSTa gönderilir

Ancak bununla ilgili birkaç sorun var:

Tüm sunucular 100-devam etmesine doğru yanıt vermez, örneğin lighttpd, bu da 417 Beklenti Başarısız döndürecektir.

gecikmeye neden oluyor,İstemci ilk Expect:100-continue'u gönderdiğinde, istek gövdesini göndermeden önce sunucunun yanıtını beklemesi gerekir

Karşı tarafın sunucusunun 1024 bayttan fazla POST isteklerini reddetmediğinden eminseniz, bu yöntemi kullanmaktan kaçınabilir ve yukarıda bahsedilen iki yan etkiyi önleyebilirsiniz; çözüm makalenin başında bahsedilen çözümdür.

Yaklaşık 100 devam ediyor

Bunun amacı şudur:

Bu sayede istemci, sunucunun talep verisini göndermeden önce almaya istekli olup olmadığını değerlendirmesini sağlar ve sunucu bunu almaya istekliyse, istemci veriyi gerçekten gönderir.

Müşteri davranışı:

100 devam gönderen bir istemci, sunucudan yanıt için sonsuza kadar beklememelidir ve bir süre zaman aşımından sonra istemci doğrudan varlığı göndermelidir.

Sunucu tarafı davranışı:

Sunucu 100 devam talebi alırsa, 100 devam ile yanıt verir veya hata kodu gönderir. Sunucu, 100 devam göndermeyen bir istemciye asla 100 devam gönderemez. Ama bazı sunucular bunu yapıyor. IIS 5 yanlışlıkla 100-devam yanıtı gönderiyor

Sunucu, 100 devam yanıtını göndermeden önce istemcinin gövdesini alırsa, bu istemcinin veri göndermeye başladığı anlamına gelir ve sunucu artık istemciye 100 devam gönderemez.
.NET Expect Off Expect Setting ayar kodu şöyledir:

RestSharp şu şekilde kurulmuştur:







Önceki:MySQL'de utf8 ile utf8mb4 arasındaki fark
Önümüzdeki:SignalR, uzaktan erişim için çapraz alan desteği ekler
 Ev sahibi| 2025-4-6 tarihinde 21:52:04 tarihinde yayınlandı |
HttpClient kapanış yöntemi


veya

Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com