Pengenalan Dokumen:Login hyperlink terlihat.
Saat memanggil antarmuka pihak lain melalui curl, ditemukan bahwa fenomena batas waktu sangat serius, jadi saya bertanya kepada orang antarmuka pihak lain, dan pihak lain mengatakan bahwa perlu untuk menambahkan:
Setelah menambahkannya, saya menemukan bahwa itu benar-benar bekerja dengan baik, jadi saya meneliti cara menggunakannya. Saat menggunakan curl untuk POST, ketika "Data POST lebih besar dari 1024 byte", curl tidak akan secara langsung memulai permintaan POST, tetapi akan dibagi menjadi 2 langkah:
Expect: 100-continue
1. Kirim permintaan yang berisi Expect:100-continue, meminta server untuk menerima data
2. Setelah menerima balasan 100-lanjutan yang dikembalikan oleh Server, data DIPOSTING ke Server
Tetapi ada beberapa masalah dengan ini:
Tidak semua server akan merespons 100-continue dengan benar, misalnya lighttpd, yang akan mengembalikan 417 Expectation Failed.
menyebabkan penundaan,Saat klien mengirim Expect:100-continue pertama, ia perlu menunggu server menjawab sebelum mengirim isi permintaan。
Jika Anda yakin bahwa server pihak lain tidak akan menolak permintaan POST lebih dari 1024 byte, Anda dapat menghindari penggunaan metode ini dan menghindari dua efek samping yang disebutkan di atas, dan solusinya adalah yang disebutkan di awal artikel.
Sekitar 100 melanjutkan
Tujuannya adalah untuk:
Ini memungkinkan klien untuk menilai apakah server bersedia menerima data permintaan sebelum mengirimkannya, dan jika server bersedia menerimanya, klien akan benar-benar mengirimkan data.
Perilaku klien:
Klien yang mengirim 100 lanjutan tidak boleh menunggu selamanya untuk respons dari server, dan setelah jangka waktu tunggu, klien harus mengirim entitas secara langsung.
Perilaku sisi server:
Jika server menerima permintaan 100 lanjutkan, server akan merespons dengan 100 lanjutkan atau mengirim kode kesalahan. Server tidak pernah dapat mengirim 100 lanjutan ke klien yang tidak mengirim 100 lanjutkan. Tetapi beberapa server melakukannya. IIS 5 salah mengirim respons 100-lanjutan
Jika server menerima badan klien sebelum mengirim respons 100 lanjutkan, itu berarti klien telah memutuskan untuk mulai mengirim data, sehingga server tidak dapat lagi mengirim 100 lanjutan ke klien. Kode pengaturan .NET Expect Off Expect adalah sebagai berikut:
RestSharp diatur sebagai berikut:
|