0Pricing
Go Academy · Lektion

HTTP-Anfragen senden

GET und POST mit http.NewRequest und http.DefaultClient

HTTP-Anfragen senden ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Kurzform mit http.Get

http.Get(url) ist die einfachste Möglichkeit, eine GET-Anfrage zu stellen. Schließen Sie den Response-Body immer.

resp, err := http.Get("https://api.example.com/users")
if err != nil { return err }
defer resp.Body.Close()

http.DefaultClient

http.Get verwendet den paketweiten DefaultClient. Erstellen Sie für den Produktionseinsatz einen benutzerdefinierten Client mit gesetzten Zeitlimits.

client := &http.Client{Timeout: 10 * time.Second}
resp, err := client.Get(url)

http.NewRequest für vollständige Kontrolle

Verwenden Sie http.NewRequest, um Methode, Header und Body festzulegen:

req, err := http.NewRequestWithContext(ctx, "POST", url, body)
req.Header.Set("Content-Type", "application/json")
resp, err := client.Do(req)

Anfrage-Body

Übergeben Sie einen Anfrage-Body über einen io.Reader. Verwenden Sie für JSON-Payloads bytes.NewBuffer(data) oder strings.NewReader.

data, _ := json.Marshal(payload)
req, _ := http.NewRequestWithContext(ctx, "POST", url, bytes.NewBuffer(data))

Antwortstatus prüfen

Prüfen Sie immer den HTTP-Statuscode – ein 4xx/5xx wird standardmäßig nicht als Go-Fehler zurückgegeben.

if resp.StatusCode != http.StatusOK {
    return fmt.Errorf("unexpected status: %d", resp.StatusCode)
}

JSON-Antwort decodieren

Decodieren Sie den Response-Body mit json.Decoder, damit er nicht zuerst vollständig in den Speicher gelesen werden muss:

var result APIResponse
json.NewDecoder(resp.Body).Decode(&result)

Query-Parameter

Erstellen Sie Query-Strings mit url.Values und hängen Sie sie an die URL an:

params := url.Values{}
params.Set("page", "1")
params.Set("limit", "20")
reqURL := baseURL + "?" + params.Encode()

Client.Do und benutzerdefinierter Transport

Umschließen Sie http.DefaultTransport, um Wiederholungslogik, benutzerdefiniertes TLS oder Proxy-Einstellungen hinzuzufügen, ohne das Standardverhalten zu verlieren.

Response-Body muss geschlossen werden

Wenn der Response-Body nicht geschlossen wird, bleibt die zugrunde liegende TCP-Verbindung belegt. Verwenden Sie immer defer resp.Body.Close(), auch bei Fehlerantworten.

Weiterleitungen folgen

Der Standardclient folgt bis zu 10 Weiterleitungen. Setzen Sie client.CheckRedirect, um das Folgen von Weiterleitungen anzupassen oder zu deaktivieren.

User-Agent setzen

Setzen Sie einen aussagekräftigen User-Agent-Header, damit Server-Logs Ihren Client identifizieren können:

req.Header.Set("User-Agent", "myapp/1.0 (+https://myapp.com)")

Kurzer Test

Warum sollten Sie den HTTP-Response-Body immer schließen?

Zusammenfassung: HTTP-Anfragen stellen

Wichtige Punkte:

  • Immer defer resp.Body.Close() verwenden
  • Für den Produktionseinsatz einen benutzerdefinierten http.Client mit Timeout erstellen
  • http.NewRequestWithContext für Context und benutzerdefinierte Header verwenden
  • resp.StatusCode prüfen – HTTP-Fehler sind keine Go-Fehler

Häufig gestellte Fragen

Ist die Lektion „HTTP-Anfragen senden“ kostenlos?

Ja — der vollständige Text von „HTTP-Anfragen senden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „HTTP-Anfragen senden“?

GET und POST mit http.NewRequest und http.DefaultClient Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Go Academy zu starten?

Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „HTTP-Anfragen senden“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?

Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. HTTP-Anfragen senden
  2. Timeouts und Header festlegen
  3. JSON-Antworten dekodieren
  4. Fehlerbehandlung und Wiederholungslogik
← Zurück zu Go Academy