Dokumentintroduksjon:Innloggingen med hyperkoblingen er synlig.
Da jeg kalte den andre partens grensesnitt gjennom curl, ble det funnet at timeout-fenomenet var veldig alvorlig, så jeg spurte den andre partens grensesnittperson, og den andre parten sa at det var nødvendig å legge til:
Etter å ha lagt den til, fant jeg ut at den fungerte veldig bra, så jeg undersøkte hvordan jeg kunne bruke den. Når man bruker curl for POST, når "POST-data er større enn 1024 byte", vil ikke curl direkte initiere en POST-forespørsel, men deles inn i to trinn:
Expect: 100-continue
1. Send en forespørsel som inneholder Expect:100-continue, og be serveren akseptere dataene
2. Etter å ha mottatt 100-fortsettelsessvaret returnert av serveren, sendes dataene POSTed til serveren
Men det er flere problemer med dette:
Ikke alle servere vil svare korrekt på 100-continue, f.eks. lighttpd, som vil returnere 417 Expectation Failed.
forårsaker forsinkelse,Når klienten sender den første Expect:100-continue, må den vente på at serveren svarer før den sender forespørselskroppen。
Hvis du er sikker på at den andre partens server ikke vil avvise POST-forespørsler på mer enn 1024 byte, kan du unngå denne metoden og unngå de to bivirkningene nevnt ovenfor, og løsningen er den som nevnes i begynnelsen av artikkelen.
Omtrent 100 fortsetter
Hensikten med dette er å:
Det lar klienten vurdere om serveren er villig til å motta forespørselsdataene før de sendes, og hvis serveren er villig til å motta dem, vil klienten faktisk sende dataene.
Klientatferd:
En klient som sender 100 fortsettelser skal ikke vente evig på svar fra serveren, og etter en periode bør klienten sende enheten direkte.
Serverside-oppførsel:
Hvis serveren mottar en 100 continue-forespørsel, vil den svare med 100 continue eller sende en feilkode. Serveren kan aldri sende 100 continues til en klient som ikke sender 100 continue. Men noen servere gjør det. IIS 5 sender feil 100-fortsettelsesrespons
Hvis serveren mottar klientens kropp før den sender 100 continue-svaret, betyr det at klienten har bestemt seg for å begynne å sende data, så serveren kan ikke lenger sende 100 continue til klienten. .NET Expect Off Expect-innstillingskoden er som følger:
RestSharp er satt opp som følger:
|