基础

  1. 在curl中,命令行解析器总是解析整个命令行,因此,选项可以放在整个命令行的任何位置。
  2. 短形式不同的是,长形式的选项使用两个中划线(—)指定,然后紧跟着具体的选项。
  3. 在使用长形式的时候,后面只能跟一个选项。
    1. curl https://api-qa.xiaobangtouzi.com/user-center/credit/transactions\?pageNum\=4\&pageSize\=10\&creditTypeCode\=fq_credit -H "X-Request-Token: dd6726d736413256c04152562748f655"

开始

  1. // -v是verbose模式的简写
  2. $ curl -v www.baidu.com // 短形式
  3. $ curl --verbose www.baidu.com // 长形式
  4. // 复合形式
  5. $ curl www.baidu.com -vL
  6. $ curl --verbose --location www.baidu.com
  7. // 或
  8. $ curl --location www.baidu.com --verbose
  9. // no- 前缀来指定关闭相应的特征
  10. $ curl --no-verbose http://example.com
  11. // 使用get方式
  12. $ curl -G -d "name=value&name2=value2" http://www.baidu.com
  13. // 使用post方式
  14. $ curl -d "name=value&name2=value2" http://www.baidu.com #post数据
  15. $ curl -d '{"is_real":1,"end_time":0,}' https://www.fuyin.con #post数据
  16. $ curl -d a=b&c=d&txt@/tmp/txt http://www.baidu.com #post文件
  17. $ curl -d key1=value1&key2=value2 http://example.com
  18. // 我们也可以使用多个-d选项来指定多组数据
  19. $ curl -d key1=value1 -d key2=value2 http://example.com
  20. // 如果数据过多,我们还可以把数据放在一个文件中
  21. $ curl -d @filename http://example.com

选项的参数

标志位参数—bool类型参数=>告诉curl打开或关闭某些特征

-v--verbose
-L--location

普通参数—要传值的参数

  1. $ curl -d arbitrary http://example.com
  2. $ curl --data arbitrary http://example.com
  3. $ curl -A "Are you OK?" http://example.com
  4. $ curl -d '{"name":"fool"}' http://example.com

修改配置请求头参数

  1. $ curl -F 'name=Dan' -H 'Content-Type: multipart/magic' https://example.com
  2. $ curl -H "HeaderName: HeaderValue" http://example.com

其中,-H就是用来指定一个具体的Header的选项,值就是key=value 的形式。当需要指定其它的Header,可以使用-H选项。
在curl中,我们可以使用-H--header选项来指定Header。

获取请求响应时间

  1. $ curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" GET "http://172.16.248.12:30180/activity/detail?activityId=1975342&operatorIdentificationId=2" -H "accept: */*" -H "X-Request-Token: 03b1b0635cd397955d8a987df86f7bbc"
  2. // 使用下面这个 替换链接即可
  3. $ curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" GET "http://www.baidu.com"

如果使用Cookies

我们可以使用--cookie选项来设置一个Cookie:

  1. $ curl --cookie "CookieName=CookieValue" http://example.com

我们可以使用-c选项指定curl保存这次请求中服务器设置的Cookies

  1. $ curl -c cookie.jar.txt http://example.com

有时,我们既需要从文件中读取Cookies,也需要保存服务器设置的Cookies。那么就可以同时使用-b-c选项:

  1. $ curl -b cookies.txt -c cookie.jar.txt http://example.com

参考

  1. curl使用指南