Curl-kommandolinjeværktøjet er en perfekt assistent, når du arbejder med HTTP-kode. Test anmodninger, udforsk dataformater og meget mere!
Hypertext Transfer Protocol (HTTP) er rygraden i kommunikationen over internettet, der tillader overførsel af data mellem servere og klienter. Det kan dog være udfordrende at interagere med HTTP-endepunkter, især for begyndere.
Heldigvis giver curl, et kommandolinjeværktøj, en nem og effektiv måde at sende og modtage HTTP-anmodninger på. Her lærer du, hvordan du bruger curl til at lave grundlæggende POST, GET, DELETE og PUT HTTP-anmodninger.
Installation af krølle
Som standard er curl installeret på større operativsystemer, herunder macOS, Linux og Unix.
Du kan bekræfte, at du har curl installeret ved at køre kommandoen nedenfor:
krølle
Kommandoen ovenfor skal udskrive "prøv 'curl --help' eller 'curl --manual' for mere information" på din terminal.
Hvis curl ikke er installeret på dit operativsystem, kan du downloade og installere det fra siden med curl-downloads.
Foretag en HTTP GET-anmodning
En HTTP GET-anmodning er en metode til at anmode om data fra en webserver. Du kan bruge disse anmodninger til at hente en bestemt ressource, såsom en webside, et billede eller en video.
Du kan lave en GET-anmodning med curl i formatet nedenfor:
krølle -X FÅ
Erstatte med URL'en på den ressource, du vil hente.
For eksempel:
krølle -X FÅ https://example.com/todos/1
Ved at køre kommandoen ovenfor foretages en HTTP GET-anmodning til URL'en https://example.com/todos/1. Det -X FÅ option angiver, at HTTP-metoden er GET. Når kommandoen kører, sender curl en GET-anmodning til serveren angivet i URL'en og venter på serverens svar.
Hvis serveren svarer med en vellykket statuskode, krølle viser svarteksten i terminalen, som i dette tilfælde ville være JSON-dataene om et opgaveelement med et ID på 1.
Alternativt kan du lave en GET-anmodning uden at angive -X flag, fordi curl som standard laver en GET-anmodning, når du ikke angiver en anmodningsmetode med -X flag.
For eksempel:
krølle https://example.com/todos/1
Hvis du kører kommandoen ovenfor, returneres det samme svar som den forrige kommando med "-X FÅ" flag.
Foretag en HTTP POST-anmodning
En HTTP POST-anmodning er en metode til at gemme data på en webserver. I modsætning til en GET-anmodning, der sender data som en del af URL'en, sender en POST-anmodning data i anmodningens meddelelsestekst. Dette gør POST-anmodninger mere sikre til overførsel af følsomme oplysninger.
Du kan lave en POST-anmodning med curl i formatet nedenfor:
krølle -X POST -d
For eksempel:
curl -X POST -d 'navn=stik' -d '[email protected]' \
https://example.com/users
Kommandoen ovenfor sender en POST-anmodning til https://example.com/users med de data, der er angivet af -d flag som nyttelast.
Det -d flag angiver de data, der skal sendes. I dette tilfælde specificerede den to dataparametre: navn = stik og [email protected].
Når du bruger -d flag mere end én gang i en kommando, kan du flette felterne ved at bruge &-symbolet.
For eksempel:
curl -d "name=jack&[email protected]" https://example.com/api/users
Nogle data, du måske forsøger at sende i en POST-anmodning, kan være svære at passe ind i en enkelt streng i din terminal. I tilfælde som dette kan det være ideelt at læse og POST dataene fra en fil ved hjælp af curl.
For at sende data fra en fil i en POST-anmodning som en nyttelast med curl, skal du bruge @ underskrive umiddelbart efter -d flag, efterfulgt af filstien til den fil, du vil have curl til at sende i anmodningen.
For eksempel:
curl -X POST -d @users.txt https://example.com/api/users
Angivelse af indholdstype
Bruger -d flag indstiller automatisk Content-Type-headeren til application/x-www-form-urlencoded. Du kan dog manuelt angive den relevante indholdstype for din anmodning ved at bruge -H eller --header flag efterfulgt af den ønskede indholdstype.
For eksempel:
curl -H "Content-Type: application/json" \
-d '{"name": "Jack", "email": "[email protected]"}' \
https://example.com/api/users
I kommandoen ovenfor er -H flag angiver Content-Type-headeren som Indholdstype: application/json.
Du kan erstatte applikation/json med enhver anden gyldig MIME-type eller indholdstype, der er passende for de data, du sender i anmodningsteksten. Når du f.eks. uploader binære data, såsom et billede eller en lydfil, skal du indstille Content-Type til multipart/form-data.
Dette giver dig mulighed for at angive det forventede format for de sendte data, hvilket kan være vigtigt, når du interagerer med API'er eller webtjenester, der kræver specifikke indholdstyper for korrekt behandling.
Lav en HTTP PUT-anmodning
En HTTP PUT-anmodning er en metode til at opdatere en eksisterende ressource på en webserver eller oprette en, hvis ressourcen ikke eksisterer. Denne metode adskiller sig fra POST-metoden i den forstand, at den er idempotent. Det betyder, at kald af PUT-metoden én eller flere gange successivt har samme effekt på serveren.
Du kan lave en PUT-anmodning 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-anmodning i JSON-format til den webserver, der er angivet i URL-adressen ovenfor, og opdaterer den angivne ressource. Hvis den angivne ressource ikke findes, vil den oprette ressourcen på webserveren.
Foretag en HTTP SLETT-anmodning
En HTTP DELETE-anmodning er en metode til at slette en specificeret ressource fra en webserver. I lighed med PUT-anmodninger er DELETE-anmodninger idempotente. Sender du den samme DELETE-anmodning flere gange til den samme ressource vil det give det samme resultat på serveren.
Du kan lave en DELETE-anmodning med curl ved at køre kommandoen nedenfor:
krølle -X SLET http://example.com/api/users/3
Kommandoen ovenfor sender en DELETE-anmodning til webserveren angivet i URL-adressen ovenfor og sletter den angivne ressource.
Slet anmodninger fjern den angivne ressource permanent fra serveren. Således kræver en webserver, der understøtter SLET, normalt en form for godkendelse eller autorisation før du kan fremsætte denne anmodning.
Sådan laver du en DELETE-anmodning med en autorisationsheader:
curl -X SLET -H "Autorisation: Bearer my_access_token" \
https://example.com/api/users/3
Kommandoen ovenfor giver godkendelsesoplysningerne i anmodningshovedet ved hjælp af Bearer-godkendelsesmetoden med -H flag. Autorisation: Bærer my_access_token er overskriftsværdien. mit_adgangstoken er en pladsholder for din faktiske adgangstokenværdi.
Andre måder du kan lave HTTP-anmodninger på
Udover curl er der flere måder at lave HTTP-anmodninger på afhængigt af konteksten for anmodningen. De mest almindelige metoder inkluderer brug af en webbrowser som Chrome, et GUI-værktøj som Postman eller en API-klient.
Hver af disse muligheder kommer med sine fordele og afvejninger. I sidste ende vil dit valg af et værktøj afhænge af din opgaves krav.