首先,"curl://"工具的网站地址 curl://
是一个unix的命令行的请求工具,这里记录一些基本的用法,方便自己查阅
安装
Unix/Linux/Mac: 如果你使用的Unix系的系统直接去官网下载安装或者通过apt、yum、brew等安装都可以。
Windows: 如果你使用的Windows,建议直接安装git,然后通过git的bash来使用,它是基于MinGW的,自带了"curl://"工具。如果你喜欢cygwin,你也可以自行查阅配置方法。我这里就是使用的git自带的bash来操作的。另外一说,"Cmder"里面的curl稍微有点不一样,虽然使用方法上差不多,但还是稍许的区别,我还没搞明白两个的差别,这里不做讨论。
最后,unix系的系统中使用就没啥其他的要注意的了。Windows下的powershell也是可以使用curl这个命令来发送请求的,是一个叫做“Invoke-WebRequest”的工具,启用的别名有iwr、wget、curl这三个,本质上与我们要说的"curl://"工具并不是同一个工具。关于powershell中的"curl",可以使用help curl来查阅相关帮助,也可使用命令“Get-Help Invoke-WebRequest -Online”查看在线帮助,"Invoke-WebRequest"有一个交互式的命令行操作也可以协同powershell进行编程操作,这里不进行深入,有兴趣可以去查阅在线帮助
使用
语法“ curl [options] 要请求的网址 ”, 使用方法其实很简单,在git bash或者cmder命令行中输入如下内容就发送请求到 http://example.com 网址去进行请求了:
curl https://example.com
配置
下面我们再来聊一聊“curl://”的各种参数和设置,选项的大小写是敏感的
请求方式:-X
"-X" 参数用来指定请求方式,如:GET、POST等HTTP的请求方式,用法如下:(我测试的时候“GET”和"get"有所区别,"get"会对代码保留空格,“GET”会直接删除所有空格和换行)
curl -X GET https://www.baidu.com
POST请求参数:-d (--data)
“-d” 参数用来指定POST请求的请求体,全参数是 “--data”,用法如下,放在哪个位置没有限制
POST请求方式传入form参数:(接口接受两个参数,name和age,并以json键值对的方式返回结果)
curl -X POST http://localhost:8080/param -d 'name=jack&age=20'
POST请求方式传入body参数:(接口接受一个json格式的body请求体,并直接返回此json对象) 单引号内的内容可换行输入
curl -X POST http://localhost:8080/edit -H 'Content-Type:application/json;charset=utf-8' -d '{"name":"Jack","age":"20"}'
提交Form表单数据:-F
"-F"参数用来提交form表单数据,也可以用来作为上传文件操作:
curl -X POST http://localhost:8080/upload -F file=@d:\image.jpg -v
设置请求头:-H
"-H" 参数用来手动设置请求头,多个请求头使用多个“-H”来设置用法如下:
curl -X POST http://localhost:8080/hello -H 'Cache-Control:no-cache'
纯粹模式(隐藏额外的输出):-s > 前面的请求每一次请求完之后,curl都给我们输出了一个统计数据,有时候我们只是想测试api接口,只想看到纯粹的结果,就需要用到“-s”参数了:
curl -X POST http://localhost:8080/edit -H 'Content-Type:application/json;charset=utf-8' -d '{"name":"Jack","age":"20"}' -s
显示更多信息(有时候要隐藏,有时候需要显示):"-v", "-i", "-#"
有时候我们需要进行调试,或者查看更多的请求和响应内容,或者使用curl下载文件时想要显示进度条,这个时候,如下命令就派上用场了
显示完整请求和响应信息:-v
curl -X GET http://localhost:8080/hello -v
仅显示响应内容:-i
curl -X GET http://localhost:8080/hello -i
显示进度条(在命令行以‘#’显示下载进度):-#
curl -X GET http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso -o 'CentOS-8.1.1911.iso' -# -v
将响应输出到文件(上面显示进度条的介绍中就是用了-o来将响应内容输出到文件): -o
curl -X GET http://localhost:8080/hello -o response.txt
等价于
curl -X GET http://localhost:8080/hello >> response.txt
结语
大概的使用就到这里吧,已经涵盖了我平时测试接口的大部分内容了。更多的,请参见“curl://”工具的文档吧,上面有详细的使用方法和demo可供参考。也可以使用命令
curl --help
来查看命令行的简单帮助