Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12455|Odpoveď: 1

HTTP request header Expect je podrobne vysvetlený

[Kopírovať odkaz]
Zverejnené 22. 4. 2021 o 15:32:09 | | |
Úvod do dokumentu:Prihlásenie na hypertextový odkaz je viditeľné.

Keď som volal rozhranie druhej strany cez curl, zistilo sa, že fenomén timeoutu je veľmi vážny, tak som sa opýtal rozhrania druhej strany a druhá strana povedala, že je potrebné dodať:


Po pridaní som zistil, že to naozaj dobre funguje, tak som si začal naštudovať, ako ho používať. Pri použití curlu pre POST, keď "POST dáta sú väčšie ako 1024 bajtov", curl priamo neiniciuje POST požiadavku, ale bude rozdelený do 2 krokov:

Expect: 100-continue

1. Oslať požiadavku obsahujúcu Expect:100-continue, žiadajúc server, aby prijal dáta

2. Po prijatí odpovede 100 pokračovania od servera sú dáta POSTované na server

Ale je tu niekoľko problémov:

Nie všetky servery správne reagujú na 100-continue, napríklad lighttpd, ktorý vráti 417 Expectation Failed.

spôsobujúc oneskorenie,Keď klient odošle prvý Expect:100-continue, musí počkať na odpoveď servera pred odoslaním tela požiadavky

Ak ste si istí, že server druhej strany neodmietne POST požiadavky s veľkosťou nad 1024 bajtov, môžete sa tejto metóde vyhnúť a vyhnúť sa dvom vedľajším účinkom spomenutým vyššie, pričom riešením je to uvedené na začiatku článku.

Približne 100 pokračuje

Účelom je:

Umožňuje klientovi posúdiť, či je server ochotný prijať požiadavky pred ich odoslaním, a ak je server ochotný ich prijať, klient ich skutočne odošle.

Správanie klienta:

Klient, ktorý pošle 100 pokračovania, by nemal čakať donekonečna na odpoveď zo servera a po určitom časovom limite by mal klient poslať entitu priamo.

Správanie na strane servera:

Ak server dostane požiadavku 100 pokračovať, odpovie 100 pokračovať alebo pošle chybový kód. Server nikdy nemôže poslať 100 pokračovať klientovi, ktorý neposiela 100 pokračovania. Ale niektoré servery áno. IIS 5 nesprávne odosiela 100-pokračovaciu odpoveď

Ak server prijme telo klienta pred odoslaním odpovede 100 pokračovať, znamená to, že klient sa rozhodol začať odosielať dáta, takže server už nemôže posielať 100 pokračovania klientovi.
Kód nastavenia .NET Expect Off Expect je nasledovný:

RestSharp je nastavený nasledovne:







Predchádzajúci:Rozdiel medzi utf8 a utf8mb4 v MySQL
Budúci:SignalR pridáva podporu vzdialeného prístupu naprieč doménami
 Prenajímateľ| Zverejnené 6. 4. 2025 21:52:04 |
Metóda uzatvárania HttpClient


alebo

Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com