Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 12455|Antwort: 1

HTTP-Anforderungskopf Expect wird ausführlich erklärt

[Link kopieren]
Veröffentlicht am 22.04.2021, 15:32:09 | | |
Dokumenteneinführung:Der Hyperlink-Login ist sichtbar.

Beim Aufrufen der Schnittstelle der anderen Partei über Curl stellte sich heraus, dass das Timeout-Phänomen sehr ernst war, also fragte ich die Interface-Person der anderen Partei, und die andere Partei sagte, es sei notwendig hinzuzufügen:


Nachdem ich es hinzugefügt hatte, stellte ich fest, dass es wirklich gut funktionierte, also recherchierte ich, wie man es benutzt. Wenn Curl für POST verwendet wird und "POST-Daten größer als 1024 Bytes sind", wird Curl keine POST-Anfrage direkt initiieren, sondern in zwei Schritte unterteilt:

Expect: 100-continue

1. Senden Sie eine Anfrage mit Expect:100-continue, in der der Server gebeten wird, die Daten anzunehmen

2. Nach Erhalt der vom Server zurückgegebenen 100-Continue-Antwort werden die Daten an den Server POSTed

Aber es gibt mehrere Probleme dabei:

Nicht alle Server reagieren korrekt auf 100-continue, z. B. lighttpd, was 417 Expectation Failed zurückgibt.

verursacht Verzögerung,Wenn der Client das erste Expect:100-continue sendet, muss er warten, bis der Server antwortet, bevor er den Request-Body verschickt

Wenn Sie sicher sind, dass der Server der anderen Partei POST-Anfragen von mehr als 1024 Bytes nicht ablehnt, können Sie diese Methode vermeiden und die beiden oben genannten Nebenwirkungen vermeiden; die Lösung ist die am Anfang des Artikels genannte.

Etwa 100 setzen sich fort

Der Zweck davon ist:

Es ermöglicht dem Client zu beurteilen, ob der Server bereit ist, die Anfragedaten zu empfangen, bevor er sie sendet, und wenn der Server bereit ist, diese zu empfangen, sendet der Client die Daten tatsächlich.

Klientenverhalten:

Ein Client, der 100 Continues sendet, sollte nicht ewig auf eine Antwort vom Server warten, und nach einer Zeitpause sollte der Client die Entität direkt senden.

Serverseitiges Verhalten:

Wenn der Server eine 100-Continue-Anfrage erhält, antwortet er mit 100 Continue oder sendet einen Fehlercode. Der Server kann niemals 100 Continues an einen Client senden, der nicht 100 Continue sendet. Aber manche Server tun es. IIS 5 sendet fälschlicherweise eine 100-Continue-Antwort

Wenn der Server den Body des Clients erhält, bevor er die 100-Continue-Antwort sendet, bedeutet das, dass der Client beschlossen hat, Daten zu senden, sodass der Server keine 100-Continue-Antworten mehr an den Client senden kann.
Der .NET Expect Off Erwartungs-Einstellungscode lautet wie folgt:

RestSharp ist wie folgt aufgebaut:







Vorhergehend:Der Unterschied zwischen utf8 und utf8mb4 in MySQL
Nächster:SignalR fügt domänenübergreifende Unterstützung für den Fernzugriff hinzu
 Vermieter| Veröffentlicht am 06.04.2025, 21:52:04 |
HttpClient-Schließungsmethode


oder

Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com