Hopp til innhold
NorscodeNorscode

std.http

ReferanseAv Norscode-prosjektet

std.http er en klient for å snakke med andre tjenester over HTTP og HTTPS: hent og send data, og tolk svaret — inkludert JSON.

std.http er en klient for å snakke med andre tjenester over HTTP og HTTPS. Du kan hente data, sende data, og tolke svaret — inkludert JSON — uten å bygge forespørselen for hånd.

De enkle funksjonene som get_simple og post_simple dekker de vanligste tilfellene med minst mulig oppsett, mens de fulle variantene lar deg styre headere, spørrestreng og tidsavbrudd i detalj. Husk at kallene krever kapabiliteten net.tcp — uten den slipper ingenting ut på nettet.

Når bruker du den

Bruk std.http når programmet ditt skal kalle et API. get og post gjør kallet, response_status, response_text og response_json leser svaret, og json_get og json_post gjør begge deler i ett. Husk kapabiliteten net.tcp.

Slik kommer du i gang

bruk std.http som http

funksjon start() -> heiltall {
    la svar = http.get_simple("https://api.eksempel.no/tid", 5000)
    hvis http.response_ok(svar) {
        skriv(http.response_text(svar))
    } ellers {
        skriv("Feil: " + tekst(http.response_status(svar)))
    }
    returner 0
}

response_ok er sann for statuskoder i 200-serien. Sjekk den før du stoler på svaret, og les statuskoden med response_status når noe går galt.

Funksjonene

Velg etter hvor mye kontroll du trenger. De enkle funksjonene (get_simple, post_simple, json_get_simple, json_post_simple) tar bare det nødvendige. De fulle (get, post, json_get, json_post, request) lar deg sette headere og spørrestreng. Uansett leser du svaret med response_status, response_text, response_json og response_ok.

  • request(metode: tekst, url: tekst, headers: ordbok_tekst, query: ordbok_tekst, body: tekst, timeout_ms: heltall) -> tekst — Gjør et fritt HTTP-kall med full kontroll over metode, headere og kropp.
  • request_full(metode: tekst, url: tekst, headers: ordbok_tekst, query: ordbok_tekst, body: tekst, timeout_ms: heltall) -> tekst — Som request, men gir hele svaret inkludert status og headere.
  • response_status(response: tekst) -> heltall — Statuskoden i svaret (f.eks. 200 eller 404).
  • response_text(response: tekst) -> tekst — Kroppen i svaret som tekst.
  • response_json(response: tekst) -> ordbok_tekst — Kroppen i svaret tolket som JSON (ordbok).
  • response_header(response: tekst, nøkkel: tekst) -> tekst — Verdien til én header i svaret.
  • response_header_or(response: tekst, nøkkel: tekst, standard: tekst) -> tekst — En header-verdi med en standard hvis den mangler.
  • response_ok(response: tekst) -> bool — Sann hvis statuskoden er i 200-serien.
  • response_json_checked(response: tekst) -> ordbok_tekst — JSON-svar som feiler ved feilstatus i stedet for å late som det er gyldig.
  • request_simple(metode: tekst, url: tekst, body: tekst, timeout_ms: heltall) -> tekst — Et enkelt kall uten egne headere eller spørrestreng.
  • request_full_simple(metode: tekst, url: tekst, body: tekst, timeout_ms: heltall) -> tekst — Et enkelt kall som gir hele svaret.
  • get(url: tekst, headers: ordbok_tekst, query: ordbok_tekst, timeout_ms: heltall) -> tekst — GET-kall med headere og spørrestreng.
  • get_simple(url: tekst, timeout_ms: heltall) -> tekst — Enkelt GET-kall — bare URL og tidsavbrudd.
  • post(url: tekst, body: tekst, headers: ordbok_tekst, query: ordbok_tekst, timeout_ms: heltall) -> tekst — POST-kall med kropp, headere og spørrestreng.
  • post_simple(url: tekst, body: tekst, timeout_ms: heltall) -> tekst — Enkelt POST-kall med kropp og tidsavbrudd.
  • json_get(url: tekst, headers: ordbok_tekst, query: ordbok_tekst, timeout_ms: heltall) -> ordbok_tekst — GET-kall som tolker svaret som JSON.
  • json_get_simple(url: tekst, timeout_ms: heltall) -> ordbok_tekst — Enkelt GET-kall som gir JSON.
  • json_post(url: tekst, body: ordbok_tekst, headers: ordbok_tekst, query: ordbok_tekst, timeout_ms: heltall) -> ordbok_tekst — POST-kall med JSON-kropp som gir JSON-svar.
  • json_post_simple(url: tekst, body: ordbok_tekst, timeout_ms: heltall) -> ordbok_tekst — Enkelt JSON-POST.

Godt å vite

  • Alle kall krever net.tcp; uten den slipper ingenting ut.
  • Sett et fornuftig tidsavbrudd (timeout_ms) så et tregt endepunkt ikke henger programmet ditt.
  • response_json_checked gir en feil ved feilstatus i stedet for å late som svaret er gyldig — nyttig når du vil feile tidlig.

std.http er én av modulene i standardbiblioteket. Alt følger med kjøretiden — ingen installasjon, ingen eksterne avhengigheter. Se også Dokumentasjon for språket og kjøretiden.

Les også

Tilbake til oversikten