std.http
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— Somrequest, 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_checkedgir 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å
- std.tekststd.tekst er verktøykassen for tekst: søke og sjekke, dele og sette sammen, trimme blanktegn, endre mellom store og små bokstaver, og konvertere til og fra tall.
- std.jsonstd.json lar programmet ditt snakke JSON: parse gjør en JSON-tekst om til en ordbok du kan hente verdier fra trygt, og stringify går den andre veien.
- std.filstd.fil er det enkleste laget mellom programmet ditt og filsystemet: sjekk om en fil finnes, les og skriv tekst, eller les og skriv rå bytes — med disk-kapabilitet.