Sobes.tech
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")

Осылайша, сервер көрсетілген уақыт ішінде жауап бермесе, сұрау тайм-аутпен тоқтатылады.