Sobes.tech
Junior — Middle

Jak lze nastavit časové omezení na čekání na odpověď při provádění HTTP požadavku?

sobes.tech AI

Odpověď od AI

V Go se obvykle používá kontext s časovým limitem nebo se nastavují časové limity v http.Client pro stanovení časového limitu odpovědi na HTTP požadavek.

Příklad s použitím kontextu:

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

req, err := http.NewRequestWithContext(ctx, "GET", "https://example.com", nil)
if err != nil {
    // zpracování chyby
}

client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
    // chyba, například timeout
}
// zpracování odpovědi

Také je možné nastavit časové limity v http.Client:

client := &http.Client{
    Timeout: 5 * time.Second, // celkový časový limit na celý požadavek
}
resp, err := client.Get("https://example.com")

Pokud server neodpoví v určeném čase, požadavek bude přerušen chybou časového limitu.