Назад к вопросам
Avito
Junior — Middle
87
Каким образом можно задать ограничение времени ожидания ответа при выполнении HTTP-запроса?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go для задания ограничения времени ожидания ответа HTTP-запроса обычно используют контекст с таймаутом или настраивают таймауты в http.Client.
Пример с использованием контекста:
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
req, err := http.NewRequestWithContext(ctx, "GET", "https://example.com", nil)
if err != nil {
// обработка ошибки
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
// ошибка, например, таймаут
}
// обработка resp
Также можно задать таймауты в http.Client:
client := &http.Client{
Timeout: 5 * time.Second, // общий таймаут на весь запрос
}
resp, err := client.Get("https://example.com")
Таким образом, если сервер не ответит за указанное время, запрос прервётся с ошибкой таймаута.