Junior — Middle
HTTP сұрауын орындау кезінде жауап күту уақытын қалай шектеуге болады?
sobes.tech AI
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 {
// қате, мысалы, тайм-аут
}
// жауапты өңдеу
Сонымен қатар, http.Client-те тайм-ауттарды тікелей орнатуға болады:
client := &http.Client{
Timeout: 5 * time.Second, // барлық сұрау үшін жалпы тайм-аут
}
resp, err := client.Get("https://example.com")
Осылайша, сервер көрсетілген уақыт ішінде жауап бермесе, сұрау тайм-аутпен тоқтатылады.