[linux]使用curl进行GET、POST和网页调试

以前在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

posted @ 2019-03-23 21:48  wildkid1024  阅读(3001)  评论(0编辑  收藏  举报