Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 12455|Svar: 1

HTTP-förfrågan: Expect förklaras i detalj

[Kopiera länk]
Publicerad den 2021-4-22 15:32:09 | | |
Dokumentintroduktion:Inloggningen med hyperlänken är synlig.

När jag anropade den andra partens gränssnitt via curl upptäcktes det att timeout-fenomenet var mycket allvarligt, så jag frågade den andra partens gränssnittsperson, och den andra parten sa att det var nödvändigt att lägga till:


Efter att ha lagt till den upptäckte jag att den fungerade riktigt bra, så jag undersökte hur man använder den. När curl används för POST, när "POST-data är större än 1024 byte", kommer curl inte direkt att initiera en POST-förfrågan, utan delas in i två steg:

Expect: 100-continue

1. Skicka en förfrågan som innehåller en Expect:100-continue, där servern blir ombedd att acceptera datan

2. Efter att ha mottagit det 100-fortsättningssvar som servern returnerat, skickas datan POST:ad till servern

Men det finns flera problem med detta:

Alla servrar svarar inte korrekt på 100-continue, t.ex. lighttpd, vilket ger 417 Expectation Failed.

orsakar fördröjning,När klienten skickar den första Expect:100-continue måste den vänta på att servern svarar innan den skickar förfrågningskroppen

Om du är säker på att den andra partens server inte kommer att avvisa POST-förfrågningar på mer än 1024 byte, kan du undvika att använda denna metod och undvika de två bieffekterna som nämnts ovan, och lösningen är den som nämns i början av artikeln.

Cirka 100 fortsätter

Syftet med detta är att:

Det låter klienten avgöra om servern är villig att ta emot förfrågningsdata innan den skickas, och om servern är villig att ta emot den, kommer klienten faktiskt att skicka datan.

Klientbeteende:

En klient som skickar 100 fortsätt bör inte vänta för evigt på svar från servern, och efter en tidsavslutning bör klienten skicka enheten direkt.

Serversidebeteende:

Om servern får en begäran om 100 fortsättning svarar den med 100 fortsätt eller skickar en felkod. Servern kan aldrig skicka 100 fortsätt till en klient som inte skickar 100 fortsättning. Men vissa servrar gör det. IIS 5 skickar felaktigt 100-fortsättningssvar

Om servern tar emot klientens kropp innan den skickar 100 fortsättningssvaret betyder det att klienten har beslutat att börja skicka data, så servern kan inte längre skicka 100 fortsätt till klienten.
.NET Expect Off Expect-inställningskoden är följande:

RestSharp är uppbyggt enligt följande:







Föregående:Skillnaden mellan utf8 och utf8mb4 i MySQL
Nästa:SignalR lägger till tvärdomänstöd för fjärråtkomst
 Hyresvärd| Publicerad den 6 april 2025 21:52:04 |
HttpClient-stängningsmetoden


eller

Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com