我有一个服务器应用程序写在ASP。NET在Windows上提供web服务。

如何在Linux中使用cURL调用web服务?


*nix提供了一个很好的小命令,使我们的工作更容易。

GET:

JSON:

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

使用XML:

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

职位:

投寄资料:

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

文件上传:

curl --form "fileupload=@filename.txt" http://hostname/resource

RESTful HTTP Post:

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

登录网站(auth):

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

漂亮地打印卷曲结果:

JSON:

如果你使用npm和nodejs,你可以通过运行这个命令来安装json包:

npm install -g json

用法:

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

如果你使用pip和python,你可以通过运行这个命令安装pjson包:

pip install pjson

用法:

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

如果你使用Python 2.6+, json工具被捆绑在里面。

用法:

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

如果你使用gem和ruby,你可以通过运行这个命令来安装colorful_json包:

gem install colorful_json

用法:

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

如果你使用apt-get(你的Linux发行版的aptitude包管理器),你可以通过运行这个命令来安装yajl-tools包:

sudo apt-get install yajl-tools

用法:

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

XML:

如果你在Debian/Gnome环境下使用*nix,请安装libxml2-utils:

sudo apt-get install libxml2-utils

用法:

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

或安装整齐:

sudo apt-get install tidy

用法:

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

将curl响应保存到文件中

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

or

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

有关curl命令的详细描述,请点击:

man curl

关于curl命令选项/开关的详细信息,请点击:

curl -h

我认为Amith Koujalgi是正确的,但在web服务响应是JSON格式的情况下,看到一个干净的JSON格式的结果可能会更有用,而不是一个很长的字符串。只需添加| grep}| python -mjson。工具到最后的curl命令这里有两个例子:

GET方法与JSON结果

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

POST方法与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