Uvod v dokument:Prijava do hiperpovezave je vidna.
Ko sem klical vmesnik druge strani preko curl, so ugotovili, da je pojav časovne omejitve zelo resen, zato sem vprašal osebo za vmesnik druge strani, ki je rekla, da je treba dodati:
Po dodajanju sem ugotovil, da res dobro deluje, zato sem raziskal, kako ga uporabljati. Pri uporabi curl za POST, ko je "POST podatki večji od 1024 bajtov", curl ne sproži neposredno POST zahteve, temveč bo razdeljen na 2 koraka:
Expect: 100-continue
1. Pošlji zahtevo, ki vsebuje Expect:100-continue, in prosiš strežnik, naj sprejme podatke
2. Po prejemu 100-nadaljujočega odgovora, ki ga vrne strežnik, se podatki POSTujejo na strežnik
A s tem je več težav:
Vsi strežniki ne bodo pravilno odgovorili na 100-continue, npr. lighttpd, ki bo vrnil 417 Expectation Failed.
povzroča zamudo,Ko odjemalec pošlje prvi Expect:100-continue, mora počakati, da strežnik odgovori, preden pošlje telo zahteve。
Če ste prepričani, da strežnik druge strani ne bo zavrnil POST zahtev z več kot 1024 bajti, se lahko tej metodi izognete in obema stranskima učinkom, omenjenima zgoraj, rešitev pa je tista, omenjena na začetku članka.
Približno 100 se nadaljuje
Namen tega je:
Omogoča odjemalcu, da presodi, ali je strežnik pripravljen prejeti podatke o zahtevi, preden jih pošlje, in če je strežnik pripravljen prejeti, bo odjemalec podatke dejansko poslal.
Vedenje stranke:
Odjemalec, ki pošlje 100 nadaljevanj, ne bi smel čakati večno na odgovor strežnika, po določenem obdobju pa naj odjemalec pošlje entiteti neposredno.
Obnašanje na strežniški strani:
Če strežnik prejme zahtevo za nadaljevanje s 100, bo odgovoril s 100 nadaljuj ali poslal kodo napake. Strežnik nikoli ne more poslati 100 nadaljevanj odjemalcu, ki ne pošlje 100 nadaljevanj. Nekateri strežniki pa to počnejo. IIS 5 napačno pošilja 100-nadaljevalni odziv
Če strežnik prejme telo odjemalca, preden pošlje odgovor 100 nadaljuj, to pomeni, da se je odjemalec odločil začeti pošiljati podatke, zato strežnik ne more več pošiljati 100 nadaljevanja odjemalcu. Koda nastavitev .NET Expect Off Expect je naslednja:
RestSharp je zasnovan takole:
|