Sende HTTP-forespørsler
GET og POST med http.NewRequest og http.DefaultClient
Sende HTTP-forespørsler er en gratis leksjon i Go Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Go Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Go Academy inneholder totalt 4 leksjoner.
Snarvei med http.Get
http.Get(url) er den enkleste måten å sende en GET-forespørsel på. Lukk alltid response-bodyen.
resp, err := http.Get("https://api.example.com/users")
if err != nil { return err }
defer resp.Body.Close()http.DefaultClient
http.Get bruker DefaultClient på pakkenivå. I produksjon bør du opprette en egendefinert klient med angitte tidsavbrudd.
client := &http.Client{Timeout: 10 * time.Second}
resp, err := client.Get(url)http.NewRequest for full kontroll
Bruk http.NewRequest for å angi metode, headere og body:
req, err := http.NewRequestWithContext(ctx, "POST", url, body)
req.Header.Set("Content-Type", "application/json")
resp, err := client.Do(req)Forespørselsbody
Send inn en forespørselsbody via en io.Reader. For JSON-nyttelaster bruker du bytes.NewBuffer(data) eller strings.NewReader.
data, _ := json.Marshal(payload)
req, _ := http.NewRequestWithContext(ctx, "POST", url, bytes.NewBuffer(data))Kontrollere svarstatus
Kontroller alltid HTTP-statuskoden — en 4xx/5xx returneres ikke som en Go-feil som standard.
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("unexpected status: %d", resp.StatusCode)
}Dekode JSON-svaret
Dekod svar-bodyen med json.Decoder for å unngå å lese alt inn i minnet først:
var result APIResponse
json.NewDecoder(resp.Body).Decode(&result)Spørringsparametere
Bygg spørringsstrenger med url.Values, og legg dem til i URL-en:
params := url.Values{}
params.Set("page", "1")
params.Set("limit", "20")
reqURL := baseURL + "?" + params.Encode()Client.Do og egendefinert transport
Pakk inn http.DefaultTransport for å legge til logikk for nye forsøk, egendefinert TLS eller proxyinnstillinger uten å miste standardfunksjonaliteten.
Response-bodyen må lukkes
Hvis du ikke lukker response-bodyen, lekker den underliggende TCP-forbindelsen. Bruk alltid defer resp.Body.Close(), også for feilsvar.
Følge omdirigeringer
Standardklienten følger opptil 10 omdirigeringer. Angi client.CheckRedirect for å tilpasse eller deaktivere følging av omdirigeringer.
Angi User-Agent
Angi en beskrivende User-Agent-header slik at serverlogger kan identifisere klienten din:
req.Header.Set("User-Agent", "myapp/1.0 (+https://myapp.com)")Hurtigsjekk
Hvorfor bør du alltid lukke HTTP-response-bodyen?
Oppsummering: Sende HTTP-forespørsler
Viktige punkter:
- Bruk alltid defer resp.Body.Close()
- Opprett en egendefinert http.Client med Timeout i produksjon
- Bruk http.NewRequestWithContext for kontekst og egendefinerte headere
- Kontroller resp.StatusCode — HTTP-feil er ikke Go-feil
Lær deg Go med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 51
- Leksjoner
- 203
Ofte stilte spørsmål
Er leksjonen «Sende HTTP-forespørsler» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Go Academy, inkludert «Sende HTTP-forespørsler», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Go Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Sende HTTP-forespørsler»?
GET og POST med http.NewRequest og http.DefaultClient Du øver på Go Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Go Academy?
Ingen tidligere erfaring er nødvendig. Go Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Sende HTTP-forespørsler»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Go Academy-leksjonen?
Ja. Alle Go Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Sende HTTP-forespørsler
- Angi tidsavbrudd og headere
- Dekode JSON-svar
- Feilhåndtering og logikk for nye forsøk