Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 12455|Svar: 1

HTTP-anmodningsheader Expect forklares i detaljer

[Kopier link]
Opslået den 22-4-2021 kl. 15:32:09 | | |
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:







Tidligere:Forskellen mellem utf8 og utf8mb4 i MySQL
Næste:SignalR tilføjer tværdomæneunderstøttelse af fjernadgang
 Udlejer| Opslået den 6-4-2025 kl. 21:52:04 |
HttpClient lukkemetode


eller

Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com