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:
|