Wie setze ich ein Timeout für http.Get() in Golang?
Hallo zusammen! Ich bin neu in Go und habe ein Problem bei der Durchführung von HTTP-Anfragen.
Ich muss GET-Anfragen an eine externe API senden, aber manchmal hängt der Server oder antwortet sehr langsam. Im Standardbeispiel aus der Dokumentation verwende ich `http.Get()`, und es hängt einfach endlos und blockiert das gesamte Programm. Hier ist mein Code:
```go
resp, err := http.Get("https://api.example.com/data")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
```
Das Problem ist, dass das Programm für immer hängt, wenn der Server nicht antwortet. Ich möchte ein Timeout setzen, z.B. 5 Sekunden, damit das Programm im Falle einer fehlenden Antwort einen Fehler ausgibt und weiterläuft.
Ich habe versucht, in der Dokumentation zu suchen, aber keinen einfachen Weg gefunden, ein Timeout zu `http.Get()` hinzuzufügen. Ich habe etwas über `http.Client` gesehen, aber nicht verstanden, wie man es richtig anwendet.
Könnt ihr mir sagen, wie man ein Timeout für HTTP-Anfragen in Go richtig implementiert? Muss ich einen separaten Client erstellen oder gibt es eine Möglichkeit, das Timeout direkt an `Get()` zu übergeben? Mich interessiert auch
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen