Dokumentintroduktion:Hyperlink-login er synlig.
Da jeg kaldte den anden parts interface via curl, blev det konstateret, at timeout-fænomenet var meget alvorligt, så jeg spurgte den anden parts interface-person, og den anden part sagde, at det var nødvendigt at tilføje:
Efter at have tilføjet den, fandt jeg ud af, at den virkede rigtig godt, så jeg undersøgte, hvordan man bruger den. Når curl bruges til POST, og "POST-data er større end 1024 bytes", vil curl ikke direkte starte en POST-anmodning, men opdeles i 2 trin:
Expect: 100-continue
1. Send en anmodning med en Expect:100-continue, hvor serveren bliver bedt om at acceptere dataene
2. Efter at have modtaget det 100-continue-svar, der returneres af serveren, sendes dataene POSTed til serveren
Men der er flere problemer med dette:
Ikke alle servere vil svare korrekt på 100-continue, f.eks. lighttpd, som vil returnere 417 Expectation Failed.
forårsager forsinkelse,Når klienten sender den første Expect:100-continue, skal den vente på, at serveren svarer, før den sender anmodningskroppen。
Hvis du er sikker på, at den anden parts server ikke vil afvise POST-anmodninger på mere end 1024 bytes, kan du undgå at bruge denne metode og undgå de to ovennævnte bivirkninger, og løsningen er den, der er nævnt i begyndelsen af artiklen.
Omkring 100 fortsætter
Formålet med dette er at:
Det giver klienten mulighed for at vurdere, om serveren er villig til at modtage anmodningsdataene, før de sendes, og hvis serveren er villig til at modtage dem, vil klienten faktisk sende dataene.
Klientadfærd:
En klient, der sender 100 continue, bør ikke vente evigt på svar fra serveren, og efter en periode med timeout bør klienten sende enheden direkte.
Server-side adfærd:
Hvis serveren modtager en anmodning om 100 fortsætte, vil den svare med 100 fortsætte eller sende en fejlkode. Serveren kan aldrig sende 100 continue til en klient, der ikke sender 100 continue. Men nogle servere gør. IIS 5 sender forkert 100-fortsæt svar
Hvis serveren modtager klientens krop, før den sender 100 continue-svaret, betyder det, at klienten har besluttet at begynde at sende data, så serveren ikke længere kan sende 100 continue til klienten. .NET Expect Off Expect-indstillingskoden er som følger:
RestSharp er sat op som følger:
|