Junior — Middle
Cum se poate stabili o limită de timp pentru a aștepta răspunsul la efectuarea unei solicitări HTTP?
sobes.tech AI
Răspuns de la AI
În Go, pentru a seta o limită de timp pentru răspunsul unei solicitări HTTP, se folosește de obicei un context cu timeout sau se configurează timeout-urile în http.Client.
Exemplu cu utilizarea contextului:
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
req, err := http.NewRequestWithContext(ctx, "GET", "https://example.com", nil)
if err != nil {
// tratarea erorii
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
// eroare, de exemplu timeout
}
// tratarea răspunsului
De asemenea, se pot seta timeout-uri în http.Client:
client := &http.Client{
Timeout: 5 * time.Second, // timeout general pentru întreaga solicitare
}
resp, err := client.Get("https://example.com")
Astfel, dacă serverul nu răspunde în timpul specificat, cererea va fi întreruptă cu o eroare de timeout.