Как настроить HTTP client timeout?

Middle
746 просмотров
AFK Offer AI

У http.Client есть поле Timeout — это общий таймаут на весь запрос: DNS, подключение, отправка, ожидание ответа и чтение тела. Но для тонкой настройки используешь http.Transport: DialContext задаёт таймаут подключения, TLSHandshakeTimeout — на TLS, ResponseHeaderTimeout — на ожидание первого байта ответа. Если нужен таймаут на чтение тела — оборачиваешь в context.WithTimeout. Никогда не используй http.DefaultClient в проде — у него нет таймаутов и один медленный сервер повесит горутину навсегда.

Следующий вопрос

Как реализовать pagination?