cURL简介

cURL是一个命令行工具,作用是发出网络请求,然后得到和提取数据,显示在“标准输出”(stdout)上面。


简单的GET请求

当我们使用curl请求不带任何参数的时候,默认就是发送GET请求。

curl http://www.example.com

如果想把这个网页保存下来,可以使用-o参数,相当于使用wget命令:

curl -o [文件名] http://www.example.com


-X参数:指定请求方法

-X参数指定HTTP请求的方法。

curl -X [GET/POST/PUT/DELETE/HEAD/OPTIONS/TRACE/CONNECT] www.example.com


-d参数:指定POST请求的数据体

-d参数用于发送 POST 请求的数据体。

curl -X POST www.example.com -d 'user=itbsl&password=123456'# 或curl -X POST www.example.com -d 'user=itbsl' -d 'password=123456'

使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST。

-d参数可以读取本地文本文件的数据,向服务器发送。

curl -d '@data.txt' www.example.com


--data-urlencode:编码后的-d

--data-urlencode参数等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码。

curl -X POST www.example.com --data-urlencode "user=hello world"


-G参数:构造URL查询字符串

curl -G www.example.com -d 'user=itbsl' -d 'password=123456'

上面命令会发出一个 GET 请求,实际请求的 URL 为https://example.com?user=itbsl&password=123456。如果省略-G,会发出一个 POST 请求。


-H参数:添加HTTP请求标头

curl -H 'User-Agent: itbsl/1.0' www.example.com

下面添加两个标头

curl -H 'User-Agent: itbsl/1.0' -H 'Sign: xxyyzz' www.example.com

下面命令添加 HTTP 请求的标头是Content-Type: application/json,然后用-d参数发送 JSON 数据。

curl https://example.com/login -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json'


-L参数:自动跳转

有的网址是自动跳转的。使用-L参数,curl就会跳转到新的网址。

curl -L www.example.com


-i参数:显示头信息

-i参数可以显示http response的头信息,联通网页代码一起。

curl -i www.example.com

示例:

curl -i www.master.com/index.html


-A:指定User-Agent

-A参数指定客户端的用户代理标头,即User-Agent。curl 的默认用户代理字符串是curl/[version]。

curl -A 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36' www.example.com

上面命令将User-Agent改成 Chrome 浏览器。

curl -A '' www.master.com

上面命令会移除User-Agent标头。

也可以通过--user-agent指定User-Agent参数。

也可以通过-H参数直接修改指定标头,更改User-Agent。

curl -H 'User-Agent: itbsl/1.0' http://www.master.com


-k参数:跳过SSL监测

curl -k www.example.com


--limit-rate:限制请求和响应带宽 模拟慢网速的环境。

curl --limit-rate 200k www.example.com


-v参数:调试

-v参数输出通信的整个过程,用于调试。

curl -v www.example.com

--trace参数也可以用于调试,还会输出原始的二进制数据。

curl --trace - www.example.com


-x参数指定 HTTP 请求的代理。

curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com

上面命令指定 HTTP 请求通过myproxy.com:8080的 socks5 代理发出。

如果没有指定代理协议,默认为 HTTP。

curl -x james:cats@myproxy.com:8080 https://www.example.com

上面命令中,请求的代理使用 HTTP 协议。


-S参数指定只输出错误信息,通常与-o一起使用。

curl -S -o 'error.txt' www.example.com


-u参数:用户设置服务器认证的用户名和密码

curl -u 'bob:12345' https://google.com/login

上面命令设置用户名为bob,密码为12345,然后将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1。

curl 能够识别 URL 里面的用户名和密码。

curl https://bob:12345@google.com/login

上面命令能够识别 URL 里面的用户名和密码,将其转为上个例子里面的 HTTP 标头。

curl -u 'bob' https://google.com/login

上面命令只设置了用户名,执行后,curl 会提示用户输入密码。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介: curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具...
    Minus_one阅读 325评论 0 0
  • 本文转载自curl 的用法指南-阮一峰 简介   curl 是常用的命令行工具,用来请求 Web 服务器。它的名字...
    殉道者之花火阅读 6,399评论 0 3
  • 简介 curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的...
    含笑州阅读 269评论 0 0
  • 什么是cURL cURL是Client for URLs的缩写,是一个支持多种协议的数据传输命令行工具。支持的协议...
    AlgoPeek阅读 953评论 0 1
  • 文章自用,看看无妨,建议看看原文。 保存curl命令发送和接受的所有数据到文本save.txt中: curl --...
    木月摇江阅读 3,231评论 0 3