详细介绍
/linux/
本文只例举一两个常用使用例子
基础语法
curl [option] [url]
option 可以组合使用比如同时加-H 和 -d 然后 -vvv显示细节
-v 详细输出,包含请求和响应的首部
-o test 将指定curl返回保存为test文件,内容从html/jpg到各种MIME类型文件
-O 把输出写到该文件中,保留远程文件的文件名
-C 在保存文件时进行续传
-x ip:port 指定使用的http代理
-c <file> 保存服务器的cookie文件
-H <header:value> 为HTTP请求设置任意header及值
-L 跟随重定向
-S 显示错误信息
-s 静默模式,不输出任何信息
-G 以get的方式发送数据
-f 连接失败是不显示http错误
-d 以post方式传送数据
项目使用
GET请求也可以用POST方式请求,所以我一般习惯都是直接用-d的方式
加-vvv显示细节用于排查是否有网络相关的故障
-H是加请求头(Head)
*/*表示接收任意类型,去掉也不会影响
post请求参数里面的"符号前需要加\转义 最外层的"不用转义
curl -X POST "http://localhost:8080/getHomepage" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"interfaceType\": \"01\", \"ns\": \"A1GLFN21P\" }"
如果json数据是多层关系,"前也都是加一个\ (这和java代码中的转义不同)
json数据格式
{
"areaCode": "shanghai",
"content": {
"interfaceType": "01",
"ns": "A1GLFN21P"
}
}
命令
curl -X POST "http://localhost:8080/getHomepage" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"areaCode\": \"shanghai\", \"content\": { \"interfaceType\": \"01\", \"ns\": \"A1GLFN21P\" }}"