2013-02-20 11 views

Odpowiedz

548

* Nix dostarcza miłe, małe polecenie, które znacznie ułatwia nam życie.

GET:

z JSON:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource 

z XML:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource 

POST:

do wysyłania danych:

curl --data "param1=value1&param2=value2" http://hostname/resource 

do przesłania pliku:

curl --form "[email protected]" http://hostname/resource 

relaksującego HTTP Post:

curl -X POST -d @filename http://hostname/resource 

do logowania na miejscu (auth):

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login 
curl -L -b headers http://localhost/ 

ładnego drukowania curl Wyniki:

Dla JSON:

Jeśli używasz npm i nodejs można zainstalować json pakiet uruchamiając polecenie:

npm install -g json 

Zastosowanie:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json 

Jeśli używasz pip i python można zainstalować pjson pakiet uruchamiając polecenie:

pip install pjson 

Zastosowanie:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | pjson 

Jeśli używasz Python 2.6+ Narzędzie json jest dołączone w ramach.

Zastosowanie:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | python -m json.tool 

Jeśli używasz gem i ruby można zainstalować colorful_json pakiet uruchamiając polecenie:

gem install colorful_json 

Zastosowanie:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | cjson 

Jeśli używasz apt-get (menedżer pakietów aptitude z Twój distro Linux) można zainstalować yajl-tools pakiet uruchamiając polecenie:

sudo apt-get install yajl-tools 

Zastosowanie:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json_reformat 

Dla XML:

Jeśli używasz * nix z Debian/Gnome envrionment , zainstaluj libxml2-utils:

sudo apt-get install libxml2-utils 

Zastosowanie:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource | xmllint --format - 

lub zainstalować tidy:

sudo apt-get install tidy 

Zastosowanie:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource | tidy -xml -i - 

Zapisywanie wywinięcia odpowiedź do pliku

curl http://hostname/resource >> /path/to/your/file 

lub

curl http://hostname/resource -o /path/to/your/file 

Szczegółowy opis komendy curl, hit:

man curl 

Aby uzyskać szczegółowe informacje na temat opcji/przełączników polecenia curl, hit:

curl -h 
+1

Jeśli przekierowanie do 'less', może być konieczne dodanie [-sS'] (http: // stackoverflow .com/a/21109454/52499). –

+0

Jak mogę uzyskać odpowiedź, aby umieścić ją w innym wierszu poleceń? – emoleumassi

+0

? @emoleumassi? – James111

45

myślę Amith Koujalgi jest poprawny, ale także w przypadkach, gdy odpowiedzi serwisu są w JSON, może być bardziej użyteczne wyświetlanie wyników w czystym formacie JSON zamiast bardzo długiego łańcucha. Po prostu dodaj | grep} | python -mjson.Narzędzie do końca poleceń curl Oto dwa przykłady:

podejście GET z wynikiem JSON

curl -i -H "Accept: application/json" http://someHostName/someEndpoint | grep }| python -mjson.tool 

podejście POST z wynikiem JSON

curl -X POST -H "Accept: Application/json" -H "Content-Type: application/json" http://someHostName/someEndpoint -d '{"id":"IDVALUE","name":"Mike"}' | grep }| python -mjson.tool 

enter image description here

+1

Co tutaj robi grep? Używam następujących wyników z tym samym wynikiem: 'curl -s -H" Accept: application/json "-H" Content-Type: application/json "-H" http: // $ {API_BASE_URL} $ {1} "| python -mjson.tool' – AVProgrammer

+0

ludzie możecie zajrzeć do mojego pytania https://stackoverflow.com/questions/47526927/how-to-test-curl-commands-which-are-in-seaprate-file-and-get- liczba-wykonania –

Powiązane problemy