Тайм-аут HTTP-запроса Bing API - PullRequest
0 голосов
/ 30 мая 2018

Я использую Bing V7 API и отправляю HTTP-запросы для этой конечной точки:

https://api.cognitive.microsoft.com/bing/v7.0/search

Когда я определяю свой HttpClient, мне нужно выбрать правильное значение времени ожидания.Из-за короткого тайм-аута я потеряю некоторые ответы с сервера.Слишком длинные тайм-ауты заставят меня ждать, даже если сервера там нет.

Я просмотрел документацию Bing и не нашел нужного значения.

Какое правильное время ожидания HTTP-запроса для этих вызовов?

1 Ответ

0 голосов
/ 30 мая 2018

Какое правильное время ожидания HTTP-запроса для этих вызовов?Я использую API Bing V7 и отправляю HTTP-запросы для этой конечной точки:

Bing предоставляет свой API через конечную точку HTTP.На мой взгляд, это не имеет ничего общего с самим API, так как HTTP - это всего лишь транспорт в этой ситуации.Контекст HTTP-запроса обычно обрабатывается, например,обратные прокси, такие как NGINX (или, вероятно, MS IIS здесь).Следовательно, в документации по API нет документации.

Когда я определяю свой HttpClient, мне нужно выбрать правильное значение Timeout.Из-за короткого тайм-аута я потеряю некоторые ответы с сервера.Слишком длинные тайм-ауты заставят меня ждать, даже если сервера там нет.

Значение тайм-аута в вашем HttpClient просто для того, чтобы в конечном итоге восстановиться из ситуации blocking.Это означает, что ваша программа не будет блокироваться бесконечно, но в какой-то момент прекратит действие HTTP под рукой.Это полезно, если ваш HttpClient попал в пример.Ситуация разделения сети, тупиковая ситуация или аналогичная ситуация, и никакого ответа не будет.

Значение тайм-аута от 45 до 60 секунд достаточно.

Слишком длинные тайм-ауты заставят меня ждать,даже если сервера там нет.

Я бы оставил фиксированным значение тайм-аута HttpClient, например.60 секунд и второй поток «супервизора» выполняет более динамический «тест дыма», чтобы проверить, в порядке ли соединение, или есть какая-то другая проблема, после которой вы можете прекратить HttpClient раньше.

...