我有一个服务器应用程序写在ASP。NET在Windows上提供web服务。
如何在Linux中使用cURL调用web服务?
我有一个服务器应用程序写在ASP。NET在Windows上提供web服务。
如何在Linux中使用cURL调用web服务?
当前回答
我认为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
其他回答
*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¶m2=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