curl 是常用的命令行工具,用于命令行发请求,curl 意为client url工具,类似curl的图形化界面工具有postman.
最简单的用法,不带任何参数:get请求
curl http://www.baidu.com
指定客户端用户代理头,user-agent。curl的默认用户代理字符串是:curl/7.29.0,原始请求头可以通过 curl -v http://www.baidu.com查看,如果要指定客户端用户代理,可以用-A参数
查看请求请求详情(Make the operation more talkative)
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" -v http://www.baidu.com
-H参数,直接指定请求头,( I参数是只看http返回头,不看返回体)
curl -H "User-Agent:Opera/9.80" -Iv http://www.baidu.com
-b参数用来向服务器发送Cookie
curl -b "name=clarkhu" -vI http://www.baidu.com
请求发送cookie
如果发送两个cookie
curl -b "foo1=bar;foo2=bar2" http://www.baidu.com
-c参数将服务器设置的cookie写入一个文件,下列命令将服务器http回应所设置的cookie写入文本文件cookie.txt
curl -c cookie.txt http://www.baidu.com
-d参数用于发送POST请求的数据体
curl -d'login=clark&password=123'-X POST https://baidu.com/login
-e 设置http referer
curl -e 'https://google.com?q=example' https://www.example.com
-G参数用来构造url查询字符串
curl -G -d 'q=a' -d 'count=30' http://www.baidu.com/search
上面命令会发出一个get请求,实际url为http://www.baidu.com/search?q=a&count=30。如果省略G, 会发出一个POST请求
I参数向服务器发出HEAD请求,会将服务器返回的HTTP头打印出来,I参数等同于–head
L参数会让HTTP请求跟随服务器的重定向。curl默认不跟随重定向。
–limit-rate 用来限制HTTP请求和回应的带宽,模拟慢网速的环境,下面命令将带宽限制在每秒200k字节
curl --limit-rate 200k http://www.baidu.com
-O 参数将服务器回应保存成文件,并将url的最后部分当作文件名。
curl -O http://www.baidu.com
-u参数,用来设置服务器认证的用户名和密码
curl -u 'bob:12345' http://www.baidu.com/login
-v参数转出通信的整个过程,用于调试
curl -v http://www.baidu.com
–trace 也用于调试,并且会输出原始的二进制数据
curl --trace - http://www.baidu.com
如何构建一个curl请求呢,可以利用chrome
转自:
https://www.clarkhu.net/?p=4242