Curl-kommandolinjeverktøyet er en perfekt assistent når du jobber med HTTP-kode. Test ut forespørsler, utforsk dataformater og mer!

Hypertext Transfer Protocol (HTTP) er ryggraden i kommunikasjon over Internett, og tillater overføring av data mellom servere og klienter. Det kan imidlertid være utfordrende å samhandle med HTTP-endepunkter, spesielt for nybegynnere.

Heldigvis gir curl, et kommandolinjeverktøy, en enkel og effektiv måte å sende og motta HTTP-forespørsler på. Her vil du lære hvordan du bruker curl til å lage grunnleggende POST-, GET-, DELETE- og PUT HTTP-forespørsler.

Installerer krøll

Som standard er curl installert på store operativsystemer, inkludert macOS, Linux og Unix.

Du kan bekrefte at du har installert curl ved å kjøre kommandoen nedenfor:

krølle

Kommandoen ovenfor skal skrive ut "prøv 'curl --help' eller 'curl --manual' for mer informasjon" på terminalen din.

Hvis curl ikke er installert på operativsystemet ditt, kan du laste det ned og installere det fra nedlastingssiden for curl.

Foreta en HTTP GET-forespørsel

En HTTP GET-forespørsel er en metode for å be om data fra en webserver. Du kan bruke disse forespørslene til å hente en bestemt ressurs, for eksempel en nettside, et bilde eller en video.

Du kan lage en GET-forespørsel med curl i formatet nedenfor:

krølle -X FÅ 

Erstatte med URL-en til ressursen du vil hente.

For eksempel:

krølle -X FÅ https://example.com/todos/1

Å kjøre kommandoen ovenfor gir en HTTP GET-forespørsel til URL-en https://example.com/todos/1. De -X FÅ alternativet spesifiserer at HTTP-metoden er GET. Når kommandoen kjører, sender curl en GET-forespørsel til serveren spesifisert i URL-en og venter på serverens svar.

Hvis serveren svarer med en vellykket statuskode, krølle viser svarteksten i terminalen, som i dette tilfellet vil være JSON-dataene om et gjøremål med en ID på 1.

Alternativt kan du lage en GET-forespørsel uten å spesifisere -X flagg fordi curl som standard lager en GET-forespørsel når du ikke spesifiserer en forespørselsmetode med -X flagg.

For eksempel:

krølle https://example.com/todos/1

Å kjøre kommandoen ovenfor vil returnere samme respons som forrige kommando med "-X FÅ" flagg.

Foreta en HTTP POST-forespørsel

En HTTP POST-forespørsel er en metode for å lagre data til en webserver. I motsetning til en GET-forespørsel, som sender data som en del av URL-en, sender en POST-forespørsel data i meldingsteksten til forespørselen. Dette gjør POST-forespørsler sikrere for overføring av sensitiv informasjon.

Du kan lage en POST-forespørsel med curl i formatet nedenfor:

krølle -X POST -d 

For eksempel:

curl -X POST -d 'navn=jack' -d '[email protected]' \
 https://example.com/users

Kommandoen ovenfor sender en POST-forespørsel til https://example.com/users med dataene spesifisert av -d flagg som nyttelast.

De -d flagget angir dataene som skal sendes. I dette tilfellet spesifiserte den to dataparametere: navn=jack og [email protected].

Når du bruker -d flagg mer enn én gang i en kommando, kan du slå sammen feltene ved å bruke &-symbolet.

For eksempel:

curl -d "name=jack&[email protected]" https://example.com/api/users

Noen data du kan prøve å sende i en POST-forespørsel kan være vanskelig å passe inn i en enkelt streng i terminalen din. I tilfeller som dette kan det være ideelt å lese og POSTE dataene fra en fil ved hjelp av curl.

For å sende data fra en fil i en POST-forespørsel som en nyttelast med curl, bruk @ signere umiddelbart etter -d flagg, etterfulgt av filbanen til filen du vil at curl skal sende i forespørselen.

For eksempel:

curl -X POST -d @users.txt https://example.com/api/users

Spesifisering av innholdstype

Bruker -d flagget setter automatisk Content-Type-overskriften til application/x-www-form-urlencoded. Du kan imidlertid manuelt spesifisere riktig innholdstype for forespørselen din ved å bruke -H eller --Overskrift flagg etterfulgt av ønsket innholdstype.

For eksempel:

curl -H "Content-Type: application/json" \
 -d '{"name": "Jack", "email": "[email protected]"}' \
 https://example.com/api/users

I kommandoen ovenfor er -H flagget angir Content-Type-overskriften som Innholdstype: application/json.

Du kan erstatte applikasjon/json med en annen gyldig MIME-type eller innholdstype som er passende for dataene du sender i forespørselsteksten. For eksempel, når du laster opp binære data, for eksempel et bilde eller en lydfil, bør du sette Content-Type til multipart/form-data.

Dette lar deg spesifisere det forventede formatet for de sendte dataene, noe som kan være viktig når du samhandler med APIer eller nettjenester som krever spesifikke innholdstyper for riktig behandling.

Foreta en HTTP PUT-forespørsel

En HTTP PUT-forespørsel er en metode for å oppdatere en eksisterende ressurs på en webserver eller opprette en hvis ressursen ikke eksisterer. Denne metoden skiller seg fra POST-metoden i den forstand at den er idempotent. Dette betyr at å kalle PUT-metoden én eller flere ganger etter hverandre har samme effekt på serveren.

Du kan lage en PUT-forespørsel med curl i formatet nedenfor:

curl -X PUT -H "Content-Type: application/json" \
 -d '{"name": "Jack Bauer", "email": "[email protected]"}' \
 https://example.com/api/users/4

Kommandoen ovenfor sender en PUT-forespørsel i JSON-format til webserveren spesifisert i URL-en ovenfor og oppdaterer den spesifiserte ressursen. Hvis den angitte ressursen ikke eksisterer, vil den opprette ressursen på webserveren.

Foreta en HTTP DELETE-forespørsel

En HTTP DELETE-forespørsel er en metode for å slette en spesifisert ressurs fra en webserver. I likhet med PUT-forespørsler er DELETE-forespørsler idempotente. Å sende den samme SLETTE-forespørselen flere ganger til den samme ressursen vil gi det samme resultatet på serveren.

Du kan lage en DELETE-forespørsel med curl ved å kjøre kommandoen nedenfor:

curl -X SLETT http://example.com/api/users/3

Kommandoen ovenfor sender en DELETE-forespørsel til webserveren spesifisert i URL-en ovenfor og sletter den spesifiserte ressursen.

Slett forespørsler fjern den spesifiserte ressursen permanent fra serveren. Dermed krever en webserver som støtter SLETT vanligvis en form for autentisering eller autorisasjon før du kan sende inn denne forespørselen.

Slik lager du en SLETT-forespørsel med en autorisasjonsoverskrift:

curl -X SLETT -H "Authorization: Bearer my_access_token" \
 https://example.com/api/users/3

Kommandoen ovenfor gir autentiseringsinformasjonen i forespørselsoverskriften ved å bruke Bearer-autentiseringsmetoden med -H flagg. Autorisasjon: Bærer my_access_token er overskriftsverdien. mitt_tilgangstoken er en plassholder for din faktiske tilgangstokenverdi.

Andre måter du kan gjøre HTTP-forespørsler på

Bortsett fra curl, er det flere måter å gjøre HTTP-forespørsler på, avhengig av konteksten til forespørselen. De vanligste metodene inkluderer bruk av en nettleser som Chrome, et GUI-verktøy som Postman eller en API-klient.

Hvert av disse alternativene har sine fordeler og avveininger. Til syvende og sist vil valget ditt av et verktøy avhenge av oppgavens krav.