Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 12455|Отговор: 1

Заглавие на HTTP заявка Очаквайте е обяснено подробно

[Копирай линк]
Публикувано на 22.04.2021 15:32:09 | | |
Въведение в документа:Входът към хиперлинк е видим.

Когато се обадих на интерфейса на другата страна чрез curl, се установи, че феноменът тайм-аут е много сериозен, затова попитах интерфейсния човек на другата страна, а другата страна каза, че е необходимо да се добави:


След като го добавих, установих, че работи много добре, затова проучих как да го използвам. Когато се използва curl за POST, когато "POST данните са по-големи от 1024 байта", curl няма да инициира директно POST заявка, а ще бъде разделен на 2 стъпки:

Expect: 100-continue

1. Изпратете заявка, съдържаща Expect:100-continue, като се моли сървърът да приеме данните

2. След получаване на отговора от 100 продължения, върнат от сървъра, данните се изпращат POST към сървъра

Но има няколко проблема с това:

Не всички сървъри ще реагират правилно на 100-continue, например lighttpd, което ще върне 417 Очакване Failed.

причинявайки забавяне,Когато клиентът изпрати първото Expect:100-continue, трябва да изчака сървърът да отговори, преди да изпрати тялото на заявката

Ако сте сигурни, че сървърът на другата страна няма да отхвърли POST заявки с повече от 1024 байта, можете да избегнете използването на този метод и да избегнете двата странични ефекта, споменати по-горе, като решението е това, споменато в началото на статията.

Около 100 продължават

Целта на това е:

Това позволява на клиента да прецени дали сървърът е готов да получи заявката преди да ги изпрати, и ако сървърът е готов да ги приеме, клиентът всъщност ще изпрати данните.

Поведение на клиента:

Клиент, който изпрати 100 продължаване, не трябва да чака вечно за отговор от сървъра, а след период на тайм-аут клиентът трябва да изпрати обекта директно.

Поведение от страна на сървъра:

Ако сървърът получи заявка за продължаване 100, ще отговори с 100 продължи или ще изпрати код за грешка. Сървърът никога не може да изпрати 100 продължи на клиент, който не изпраща 100 продължи. Но някои сървъри го правят. IIS 5 изпраща неправилно отговор от 100-продължително

Ако сървърът получи тялото на клиента преди да изпрати 100 продължителни отговора, това означава, че клиентът е решил да започне да изпраща данни, така че сървърът вече не може да изпраща 100 продължаване на клиента.
Кодът на настройката .NET Expect Off Expect е следният:

RestSharp е настроен по следния начин:







Предишен:Разликата между utf8 и utf8mb4 в MySQL
Следващ:SignalR добавя поддръжка за междудомейн за отдалечен достъп
 Хазяин| Публикувано на 2025-4-6 21:52:04 |
Метод за затваряне на HttpClient


или

Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com