Dokumenta ievads:Hipersaites pieteikšanās ir redzama.
Zvanot uz otras puses saskarni, izmantojot čokurošanos, tika konstatēts, ka taimauta parādība ir ļoti nopietna, tāpēc es jautāju otras puses saskarnes personai, un otra puse teica, ka ir nepieciešams piebilst:
Pēc tā pievienošanas es atklāju, ka tas patiešām darbojas labi, tāpēc es izpētīju, kā to izmantot. Izmantojot curl for POST, ja "POST dati ir lielāki par 1024 baitiem", curl tieši neiniciēs POST pieprasījumu, bet tiks sadalīts 2 soļos:
Expect: 100-continue
1. Nosūtiet pieprasījumu, kas satur Expect:100-continue, lūdzot serverim pieņemt datus
2. Pēc 100 turpinājumu atbildes saņemšanas no servera, dati tiek nosūtīti uz serveri
Bet ar to ir vairākas problēmas:
Ne visi serveri pareizi atbildēs uz 100-continue, piemēram, lighttpd, kas atgriezīs 417 Expectation Failed.
izraisot kavēšanos,Kad klients nosūta pirmo Expect:100-continue, tam ir jāgaida, kamēr serveris atbildēs pirms pieprasījuma pamatteksta nosūtīšanas。
Ja esat pārliecināts, ka otras puses serveris nenoraidīs POST pieprasījumus, kas pārsniedz 1024 baitus, varat izvairīties no šīs metodes izmantošanas un izvairīties no divām iepriekš minētajām blakusparādībām, un risinājums ir tas, kas minēts raksta sākumā.
Apmēram 100 turpina
Tās mērķis ir:
Tas ļauj klientam spriest, vai serveris ir gatavs saņemt pieprasījuma datus pirms to nosūtīšanas, un, ja serveris vēlas tos saņemt, klients faktiski nosūtīs datus.
Klientu uzvedība:
Klientam, kas nosūta 100 turpinājumu, nevajadzētu mūžīgi gaidīt atbildi no servera, un pēc kāda laika beigām klientam ir jānosūta entītija tieši.
Servera puses darbība:
Ja serveris saņem 100 turpināt pieprasījumu, tas atbildēs ar 100 turpināt vai nosūtīs kļūdas kodu. Serveris nekad nevar nosūtīt 100 turpināt klientam, kas nesūta 100 turpināt. Bet daži serveri to dara. IIS 5 nepareizi nosūta atbildi uz 100 turpinājumiem
Ja serveris saņem klienta ķermeni pirms 100 turpinājuma atbildes nosūtīšanas, tas nozīmē, ka klients ir nolēmis sākt sūtīt datus, tāpēc serveris vairs nevar nosūtīt klientam 100 turpināšanu. .NET Expect Off Expect iestatījuma kods ir šāds:
RestSharp ir iestatīts šādi:
|