以前在win下开发的时候,习惯用的调试工具是谷歌自带控制台和postman,谷歌控制台比较方便,但不能对请求进行重发,post虽然很好用,但是感觉还是有点‘大’。在linux下,其实完全没有那么麻烦,系统自带的curl足够自用。curl是一个向服务器传输数据的工具,它支持http、https、ftp、ftps、scp、sftp、tftp、telnet等协议,这里只针对http进行讲解一些常用的用法,当然还有其他诸如下载的功能参考:https://www.cnblogs.com/wildkid1024/p/10585665.html
GET请求
curl默认的请求即为GET请求,对应的参数直接拼接在url中即可。例子:
curl http://www.baidu.com/s?wd=curl
上述请求会上百度发起一条查询请求,参数是wd=url
POST请求
使用post方式发送请求需要在参数里添加d参数,例子:
curl -d "name=test&page=1" http://www.baidu.com
只查看header
有时候不需要得到网页的具体内容,只需要得到header,对应的参数为I
curl -I http://www.baidu.com
显示通信过程
对于需要查看网络状况的情况下,可以添加-v参数来查看整个连接过程。
更进一步地,如果想看到更详细的信息,使用:curl --trace output.txt www.baidu.com
运行结束后在output.txt里查看具体的连接信息。
设置头部信息
对于需要设置头部信息的网页,使用-H参数进行:curl -H "Content-Type:application/json" http://example.com
或者设置header参数curl --header "Content-Type:application/json" http://example.com
Referer字段
有时你需要在http request头信息中,提供一个referer字段,表示你是从哪里跳转过来的。
curl --referer http://www.example.com http://www.example.com
User Agent字段
这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版。
iPhone4的User Agent是
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
curl可以这样模拟:
curl --user-agent "[User Agent]" [URL]
cookies
对于需要保存cookies的网页:curl -c cookiec.txt http://www.linux.com
对于需要传输cookies的网页:curl -b cookiec.txt http://www.linux.com
自动跳转
有时候网页是需要跳转的,这时就需要-L参数来设置自动跳转:
curl -L http://github.com