Curl使用总结

一、curl请求类型

1.1 GET请求

curl默认就是get请求, 如果带有queryParam, 需要先手动urlEncode

get请求使用encode前的参数:

curl  -v -X GET  -G 'http://localhost:8083/get/objectData' --data-urlencode 'params={"abc":"va"}'

(-G 表示强制将body的参数放到get的url上)


1.2 POST/FORM请求

curl -X POST 或 curl -H 'content-Type:application/x-www-form-urlencode’均可以

如果用encode前的参数, 用--data-raw 'doctype=0&quotepid=&message=<p>11</p>

如果用encode后的参数, 用--data'doctype=0&quotepid=&message=%3Cp%3E11%3C%2Fp%3E'

-d'doctype=0&quotepid=&message=%3Cp%3E11%3C%2Fp%3E'


1.3 POST/JSON

curl -X POST -H 'content-Type:application/json

如果要带参数: 直接用-d--data即可


二、常见场景

2.1 常见命令选项

curl -i #响应显示response head 
curl -v #显示http通信过程,包括端口连接和request/response头信息
curl --trace output.txt #保存详细通信过程到文件
curl --cookie-jar output.txt #或`curl -c`,将cookie以特定格式写到指定文件(生效域/失效时间)
curl --cookie input.txt #或`curl -b`,从指定文件读取cookie并请求
curl --cookie 'k=v' #或`curl -b`,指定完整cookie(多个cookie选项会覆盖)并请求
curl --dump-header #或`curl -D`,将响应头写到指定文件
curl --retry n #如果失败重试的次数
curl --retry-delay seconds #重试的间隔
curl -s #或--silent,静默不显示请求的中间过程
curl --upload-file FILE #或`curl -T`,上传文件
curl --output #或`curl -o`把输出到该文件中
curl --proxy <host[:port]> #或`curl -x`通过代理
curl --user-agent #或`curl -A`,设置user-Agent信息
curl -e <URL> #或`curl --referer`设置Referrer URL

2.2 --write-out

-w,即curl正常返回后的输出内容,如果带变量需要%{variable_name}这样引用。

常用内置变量:

http_code #http状态码,如200成功,301转向,404未找到,500服务器错误等
time_total #总时间,按秒计。精确到小数点后三位
time_namelookup #DNS解析时间,从请求开始到DNS解析完毕所用时间
time_connect #连接时间,包括TCP连接时间和DNS解析时间,如果要得到连接时间减去time_namelookup时间即可
time_appconnect #连接建立完成时间,如SSL/SSH等建立连接或者完成三次握手时间
content_type #返回的content-Type

2.3 场景总结

  • 保存响应结果
curl http://www.baidu.com >> output.txt
  • 保存整个网页
curl -o output.txt http://www.baidu.com
  • 保存下载的文件
curl -O http://www.kingle.com/hello.sh #这里后面的url要具体到某个文件,不然抓不下来
  • 测试请求状态码
curl -o /dev/null -s -w %{http_code} www.baidu.com
  • 通过代理访问
curl -x 192.168.100.100:1080 http://www.baidu.com
  • 保存响应的cookie
curl -c cookiec.txt  http://www.baidu.com
  • 保存响应的header
curl -D resHead.txt http://www.baidu.com
  • 使用保存的cookie方法

使用保存的cookie信息访问可以避免被监视非常规访问

curl -b cookiec.txt http://www.baidu.com
  • 特定的user-agent

比如有些网站需要使用特定的浏览器去访问

curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.baidu.com
  • 设置refer

防止被识别为盗链

curl -e "www.baidu.com" http://www.mail.baidu.com
  • 不显示进度信息
curl -s  http://www.baidu.com
  • 压缩

--compressed

  • 结果不打印

用管道> /dev/null 2>&1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值