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.