Въведение в документа:Входът към хиперлинк е видим.
Когато се обадих на интерфейса на другата страна чрез 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 е настроен по следния начин:
|