curl命令
curl 是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在 UNIX、多种 Linux 发行版中,并且有 DOS和Win32、Win64 下的移植版本。如果你的开发环境是 Mac或者 Linux,会自带 curl ;如果是 Windows 系统, 需要从 https://curl.haxx.se/ 下载 window 本。如果你安装了 git shell,也自带了 curl。
curl 命令可以在我们开发 Web 应用的时候,模拟前端发起的 HTTP 请求,代码可以使用 curl 发起测试,而且能很好地模拟 POST、PUT 等其他协议的测试,文件上传测试等用浏览器无法直接测试的也可以使用 curl 命令。
curl 最简单的命令是 curl URL 以下输入将返回请求地址的内容:
通过-i参数返回 HTTP头:
通过-H设直请求的 HTTP 头,比如请求体是 JSON 格式:
>curl URL -H Content-Type: application/json ’
URL 通常用双引号防止转义,比如&符号在命令行中表示后台运行,因此这里必须用引号:
> curl ” baidu.com?q=txt&c=l”
通过-d参数发起 POST 请求, -d后面是 POST 的内容:
>curl URL -d ” paraml=valuel¶m2=value2 ”
如果 POST 内容需要转义,比如中文字符、空格等,可以使用 --data-urlencode:
>curl URL --data-urlencode "paraml=valuel¶m2=中文"
-G 参数发起一个 GET 请求,可以联合 --data-urlencode 来转义 URL 参数里的中文特殊符号,data-urlencode 默认是 POST 请求,如果没有-G参数, 则会发起一个 POST 请求:
>curl -G ” baidu.com” --data-urlencode paraml=valuel¶m2 =中文”
以上命令对应了 个请求 baidu.com?paraml =value! ¶m2=中文。
发起 一个JSON 请求,通过- 指定 PUT 协议, JSON 内容可以用引号括起来:
>curl - XPUT 'localhost:9200/product/book/l?pretty' -H 'Content-Type: application/json' -d '
{
"name":"北京 100 小吃",
"type":"food",
"postDate":"2009-11-15",
"message":"介绍 了北京小吃,如炸酱面,卤煮,驴打滚等"
}
'
使用-F上传文件:
>curl url -F ” file=@xxx.doc ”-F ” name=xiandafu ”
这样 可以通过 name 字段获取提交的名字 ,通过日le 字段获得 xxx.doc 文件。