HTTP-requests uitvoeren
GET en POST met http.NewRequest en http.DefaultClient
HTTP-requests uitvoeren is een gratis Go Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Go Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Go Academy bevat in totaal 4 lessen.
Snelkoppeling voor http.Get
http.Get(url) is de eenvoudigste manier om een GET-verzoek te maken. Sluit altijd de body van het antwoord.
resp, err := http.Get("https://api.example.com/users")
if err != nil { return err }
defer resp.Body.Close()http.DefaultClient
http.Get gebruikt de DefaultClient op pakketniveau. Maak voor productie een aangepaste client met ingestelde time-outs.
client := &http.Client{Timeout: 10 * time.Second}
resp, err := client.Get(url)http.NewRequest voor volledige controle
Gebruik http.NewRequest om de methode, headers en body in te stellen:
req, err := http.NewRequestWithContext(ctx, "POST", url, body)
req.Header.Set("Content-Type", "application/json")
resp, err := client.Do(req)Body van het verzoek
Geef een body van een verzoek door via een io.Reader. Gebruik voor JSON-inhoud bytes.NewBuffer(data) of strings.NewReader.
data, _ := json.Marshal(payload)
req, _ := http.NewRequestWithContext(ctx, "POST", url, bytes.NewBuffer(data))Status van antwoord controleren
Controleer altijd de HTTP-statuscode: een 4xx/5xx wordt standaard niet als Go-fout geretourneerd.
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("unexpected status: %d", resp.StatusCode)
}JSON-antwoord decoderen
Decodeer de body van het antwoord met json.Decoder, zodat je deze niet eerst volledig in het geheugen hoeft te lezen:
var result APIResponse
json.NewDecoder(resp.Body).Decode(&result)Queryparameters
Bouw querytekenreeksen met url.Values en voeg ze toe aan de URL:
params := url.Values{}
params.Set("page", "1")
params.Set("limit", "20")
reqURL := baseURL + "?" + params.Encode()Client.Do en aangepast transport
Wikkel http.DefaultTransport in om logica voor opnieuw proberen, aangepaste TLS of proxy-instellingen toe te voegen zonder het standaardgedrag te verliezen.
De body van het antwoord moet worden gesloten
Als je de body van het antwoord niet sluit, lekt de onderliggende TCP-verbinding. Gebruik altijd defer resp.Body.Close(), zelfs voor foutantwoorden.
Omleidingen volgen
De standaardclient volgt maximaal 10 omleidingen. Stel client.CheckRedirect in om het volgen van omleidingen aan te passen of uit te schakelen.
User-Agent instellen
Stel een beschrijvende User-Agent-header in, zodat serverlogboeken je client kunnen herkennen:
req.Header.Set("User-Agent", "myapp/1.0 (+https://myapp.com)")Korte controle
Waarom moet je de body van het HTTP-antwoord altijd sluiten?
Samenvatting: HTTP-verzoeken maken
Belangrijke punten:
- Gebruik altijd defer resp.Body.Close()
- Maak voor productie een aangepaste http.Client met Timeout
- Gebruik http.NewRequestWithContext voor context en aangepaste headers
- Controleer resp.StatusCode — HTTP-fouten zijn geen Go-fouten
Leer Go met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 51
- Lessen
- 203
Veelgestelde vragen
Is de les “HTTP-requests uitvoeren” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Go Academy, waaronder “HTTP-requests uitvoeren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Go Academy bevat in totaal 4 lessen.
Wat leer ik in “HTTP-requests uitvoeren”?
GET en POST met http.NewRequest en http.DefaultClient Je oefent met Go Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Go Academy te beginnen?
Ervaring vooraf is niet nodig. Go Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “HTTP-requests uitvoeren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Go Academy?
Ja. Elke les over Go Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- HTTP-requests uitvoeren
- Time-outs en headers instellen
- JSON-responses decoderen
- Foutafhandeling en retrylogica