Kommandoradsverktyget curl är en perfekt assistent när du arbetar med HTTP-kod. Testa förfrågningar, utforska dataformat och mer!
Hypertext Transfer Protocol (HTTP) är ryggraden i kommunikation över Internet, vilket möjliggör överföring av data mellan servrar och klienter. Men att interagera med HTTP-slutpunkter kan vara utmanande, särskilt för nybörjare.
Lyckligtvis ger curl, ett kommandoradsverktyg, ett enkelt och effektivt sätt att skicka och ta emot HTTP-förfrågningar. Här kommer du att lära dig hur du använder curl för att göra grundläggande POST-, GET-, DELETE- och PUT HTTP-förfrågningar.
Installerar curl
Som standard är curl installerat på större operativsystem inklusive macOS, Linux och Unix.
Du kan bekräfta att du har installerat curl genom att köra kommandot nedan:
ringla
Kommandot ovan ska skriva ut "prova 'curl --help' eller 'curl --manual' för mer information" på din terminal.
Om curl inte är installerat på ditt operativsystem kan du ladda ner och installera det från sidan för nedladdning av curl.
Göra en HTTP GET-förfrågan
En HTTP GET-begäran är en metod för att begära data från en webbserver. Du kan använda dessa förfrågningar för att hämta en specifik resurs, till exempel en webbsida, bild eller video.
Du kan göra en GET-förfrågan med curl i formatet nedan:
curl -X GET
Byta ut med webbadressen till resursen du vill hämta.
Till exempel:
curl -X GET https://example.com/todos/1
Att köra kommandot ovan gör en HTTP GET-begäran till URL: en https://example.com/todos/1. De -X FÅR alternativet anger att HTTP-metoden är GET. När kommandot körs skickar curl en GET-förfrågan till servern som anges i URL: en och väntar på serverns svar.
Om servern svarar med en framgångsrik statuskod, ringla visar svarstexten i terminalen, som i det här fallet skulle vara JSON-data om ett att göra-objekt med ett ID på 1.
Alternativt kan du göra en GET-begäran utan att ange -X flagga eftersom curl som standard gör en GET-begäran när du inte anger en begäranmetod med -X flagga.
Till exempel:
ringla https://example.com/todos/1
Att köra kommandot ovan kommer att returnera samma svar som föregående kommando med "-X FÅR" flagga.
Göra en HTTP POST-förfrågan
En HTTP POST-begäran är en metod för att spara data på en webbserver. Till skillnad från en GET-begäran, som skickar data som en del av URL: en, skickar en POST-begäran data i meddelandetexten för begäran. Detta gör POST-förfrågningar säkrare för överföring av känslig information.
Du kan göra en POST-förfrågan med curl i formatet nedan:
curl -X POST -d
Till exempel:
curl -X POST -d 'namn=jack' -d '[email protected]' \
https://example.com/users
Kommandot ovan skickar en POST-begäran till https://example.com/users med de uppgifter som anges av -d flagga som nyttolast.
De -d flaggan anger vilken data som ska skickas. I det här fallet specificerade den två dataparametrar: namn=jack och [email protected].
När du använder -d flagga mer än en gång i ett kommando kan du slå samman fälten med &-symbolen.
Till exempel:
curl -d "name=jack&[email protected]" https://example.com/api/users
Vissa data som du kan försöka skicka i en POST-förfrågan kan vara svåra att passa in i en enda sträng i din terminal. I sådana här fall kan det vara idealiskt att läsa och POSTA data från en fil med curl.
För att skicka data från en fil i en POST-förfrågan som en nyttolast med curl, använd @ underteckna omedelbart efter -d flagga, följt av sökvägen till filen du vill att curl ska skicka i begäran.
Till exempel:
curl -X POST -d @users.txt https://example.com/api/users
Specificering av innehållstyp
Använda -d flaggan ställer automatiskt in rubriken Content-Type till application/x-www-form-urlencoded. Du kan dock manuellt ange lämplig innehållstyp för din begäran med hjälp av -H eller --rubrik flagga följt av önskad innehållstyp.
Till exempel:
curl -H "Content-Type: application/json" \
-d '{"name": "Jack", "email": "[email protected]"}' \
https://example.com/api/users
I kommandot ovan visas -H flaggan anger Content-Type-huvudet som Content-Type: application/json.
Du kan byta ut applikation/json med någon annan giltig MIME-typ eller innehållstyp som är lämplig för de data du skickar i förfrågan. Till exempel, när du laddar upp binär data, såsom en bild eller ljudfil, bör du ställa in Content-Type till multipart/form-data.
Detta gör att du kan ange det förväntade formatet för de skickade data, vilket kan vara viktigt när du interagerar med API: er eller webbtjänster som kräver specifika innehållstyper för korrekt bearbetning.
Göra en HTTP PUT-förfrågan
En HTTP PUT-begäran är en metod för att uppdatera en befintlig resurs på en webbserver eller skapa en om resursen inte finns. Denna metod skiljer sig från POST-metoden i den meningen att den är idempotent. Detta innebär att anrop av PUT-metoden en eller flera gånger i följd har samma effekt på servern.
Du kan göra en PUT-förfrågan med curl i formatet nedan:
curl -X PUT -H "Content-Type: application/json" \
-d '{"name": "Jack Bauer", "email": "[email protected]"}' \
https://example.com/api/users/4
Kommandot ovan skickar en PUT-begäran i JSON-format till webbservern som anges i URL: en ovan och uppdaterar den angivna resursen. Om den angivna resursen inte finns kommer den att skapa resursen på webbservern.
Göra en HTTP DELETE-förfrågan
En HTTP DELETE-begäran är en metod för att ta bort en specificerad resurs från en webbserver. I likhet med PUT-förfrågningar är DELETE-förfrågningar idempotenta. Att skicka samma DELETE-begäran flera gånger till samma resurs ger samma resultat på servern.
Du kan göra en DELETE-förfrågan med curl genom att köra kommandot nedan:
curl -X DELETE http://example.com/api/users/3
Kommandot ovan skickar en DELETE-begäran till webbservern som anges i URL: en ovan och tar bort den angivna resursen.
Ta bort begäranden ta bort den angivna resursen permanent från servern. Således kräver en webbserver som stöder DELETE vanligtvis en form av autentisering eller auktorisering innan du kan göra denna begäran.
Så här gör du en DELETE-begäran med ett auktoriseringshuvud:
curl -X DELETE -H "Authorization: Bearer my_access_token" \
https://example.com/api/users/3
Kommandot ovan tillhandahåller autentiseringsinformationen i förfrågningshuvudet med hjälp av Bearer-autentiseringsmetoden med -H flagga. Auktorisering: Bärare my_access_token är rubrikvärdet. my_access_token är en platshållare för ditt faktiska åtkomsttokenvärde.
Andra sätt du kan göra HTTP-förfrågningar på
Förutom curl finns det flera sätt att göra HTTP-förfrågningar beroende på förfrågans sammanhang. De vanligaste metoderna inkluderar att använda en webbläsare som Chrome, ett GUI-verktyg som Postman eller en API-klient.
Vart och ett av dessa alternativ kommer med sina fördelar och kompromisser. I slutändan kommer ditt val av ett verktyg att bero på din uppgifts krav.