查看“Curl 用法指南”的源代码
←
Curl 用法指南
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:curl]] == 关于 == 【转自:'''[http://www.ruanyifeng.com/blog/2019/09/curl-reference.html http://www.ruanyifeng.com/blog/2019/09/curl-reference.html]'''】 === -A === '''-A''' 参数'''指定客户端的用户代理标头''',即 '''User-Agent'''。 * curl 的默认用户代理字符串是<code>'''curl/[version]'''</code>。 * 也可以通过<code>'''-H'''</code>参数直接指定标头,更改 User-Agent。 示例: # 将User-Agent改成 Chrome 浏览器: #: <syntaxhighlight lang="bash" highlight=""> $ 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' https://google.com </syntaxhighlight> # 移除User-Agent标头: #: <syntaxhighlight lang="bash" highlight=""> $ curl -A '' https://google.com </syntaxhighlight> # 通过 -H 参数指定标头: #: <syntaxhighlight lang="bash" highlight=""> $ curl -H 'User-Agent: php/1.0' https://google.com </syntaxhighlight> === -b === '''-b''' 参数用来'''向服务器发送 Cookie'''。 示例: # 生成一个标头Cookie: foo=bar,向服务器发送一个名为foo、值为bar的 Cookie: #: <syntaxhighlight lang="bash" highlight=""> $ curl -b 'foo=bar' https://google.com </syntaxhighlight> # 发送两个 Cookie: #: <syntaxhighlight lang="bash" highlight=""> $ curl -b 'foo1=bar;foo2=bar2' https://google.com </syntaxhighlight> # 读取本地文件“cookies.txt”,里面是服务器设置的 Cookie(参见-c参数),将其发送到服务器: #: <syntaxhighlight lang="bash" highlight=""> $ curl -b cookies.txt https://www.google.com </syntaxhighlight> === -c === '''-c''' 参数'''将服务器设置的 Cookie 写入一个文件'''。 示例: # 服务器的 HTTP 回应所设置 Cookie 写入文本文件“cookies.txt”: #: <syntaxhighlight lang="bash" highlight=""> $ curl -c cookies.txt https://www.google.com </syntaxhighlight> === -d === '''-d'''参数用于'''发送 POST 请求的数据体'''。 * -d参数可以读取本地文本文件的数据,向服务器发送。 <syntaxhighlight lang="bash" highlight=""> $ curl -d'login=emma&password=123'-X POST https://google.com/login # 或者 $ curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login </syntaxhighlight> 使用 -d 参数以后: * HTTP 请求会自动加上标头 <code>Content-Type : application/x-www-form-urlencoded</code>。 * 并且会自动将请求转为 POST 方法,因此可以省略 <code>-X POST</code>。 示例: # 读取“data.txt”文件的内容,作为数据体向服务器发送: #: <syntaxhighlight lang="bash" highlight=""> $ curl -d '@data.txt' https://google.com/login </syntaxhighlight> === --data-urlencode === '''--data-urlencode''' 参数等同于 '''-d''',发送 POST 请求的数据体,区别在于'''会自动将发送的数据进行 URL 编码'''。 示例: # 发送的数据hello world之间有一个空格,需要进行 URL 编码: #: <syntaxhighlight lang="bash" highlight=""> $ curl --data-urlencode 'comment=hello world' https://google.com/login </syntaxhighlight> === -e === '''-e''' 参数用来设置 HTTP 的标头 Referer,表示'''请求的来源'''。 * '''-H'''参数可以通过直接添加标头 Referer,达到同样效果。 示例: # 将 Referer 标头设为 “https://google.com?q=example”: #: <syntaxhighlight lang="bash" highlight=""> curl -e 'https://google.com?q=example' https://www.example.com </syntaxhighlight> # 通过 -H 参数直接添加标头Referer: #: <syntaxhighlight lang="bash" highlight=""> curl -H 'Referer: https://google.com?q=example' https://www.example.com </syntaxhighlight> === -F === '''-F''' 参数用来向服务器'''上传二进制文件'''。 -F 参数还可以: * 指定 MIME 类型; ** 默认 MIME 类型为 <code>application/octet-stream</code>; * 指定文件名; 示例: # 给 HTTP 请求加上标头 Content-Type: multipart/form-data,然后将文件 photo.png 作为 file 字段上传: #: <syntaxhighlight lang="bash" highlight=""> $ curl -F 'file=@photo.png' https://google.com/profile </syntaxhighlight> # 指定 MIME 类型为 image/png: #: <syntaxhighlight lang="bash" highlight=""> $ curl -F 'file=@photo.png;type=image/png' https://google.com/profile </syntaxhighlight> # 原始文件名为 photo.png,但是服务器接收到的文件名为 me.png: #: <syntaxhighlight lang="bash" highlight=""> $ curl -F 'file=@photo.png;filename=me.png' https://google.com/profile </syntaxhighlight> === -G === '''-G''' 参数用来'''构造 URL 的查询字符串'''。 * 如果数据需要 URL 编码,可以结合'''<code>--data--urlencode</code>'''参数; 示例: # 发出一个 GET 请求,实际请求的 URL 为“https://google.com/search?q=kitties&count=20”: #: <syntaxhighlight lang="bash" highlight=""> $ curl -G -d 'q=kitties' -d 'count=20' https://google.com/search </syntaxhighlight> #* 如果省略 --G,会发出一个 POST 请求。 # 结合 --data--urlencode 对数据进行 URL 编码: #: <syntaxhighlight lang="bash" highlight=""> $ curl -G --data-urlencode 'comment=hello world' https://www.example.com </syntaxhighlight> === -H === '''-H''' 参数'''添加 HTTP 请求的标头'''。 示例: # 添加 HTTP 标头“Accept-Language: en-US”: #: <syntaxhighlight lang="bash" highlight=""> $ curl -H 'Accept-Language: en-US' https://google.com </syntaxhighlight> # 添加两个 HTTP 标头: #: <syntaxhighlight lang="bash" highlight=""> $ curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com </syntaxhighlight> # 添加 HTTP 请求的标头“Content-Type: application/json”,然后用 '''-d''' 参数发送 JSON 数据: #: <syntaxhighlight lang="bash" highlight=""> $ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login </syntaxhighlight> === -i === '''-i''' 参数'''打印出服务器回应的 HTTP 标头'''。 示例: # 收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码: #: <syntaxhighlight lang="bash" highlight=""> $ curl -i https://www.example.com </syntaxhighlight> === -I === '''-I''' 参数向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 标头打印出来。 * '''--head''' 参数等同于 '''-I'''; 示例: # 输出服务器对 HEAD 请求的回应: #: <syntaxhighlight lang="bash" highlight=""> $ curl -I https://www.example.com </syntaxhighlight> #: <syntaxhighlight lang="bash" highlight=""> $ curl --head https://www.example.com </syntaxhighlight> === -k === '''-k''' 参数指定'''跳过 SSL 检测'''。 示例: # 跳过服务器的 SSL 证书检查: #: <syntaxhighlight lang="bash" highlight=""> $ curl -k https://www.example.com </syntaxhighlight> === -L === '''-L''' 参数会让 HTTP 请求跟随服务器的重定向。 * curl 默认不跟随重定向。 示例: : <syntaxhighlight lang="bash" highlight=""> $ curl -L -d 'tweet=hi' https://api.twitter.com/tweet </syntaxhighlight> === --limit-rate === '''--limit-rate''' 用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境。 示例: # 将带宽限制在每秒 200K 字节: #: <syntaxhighlight lang="bash" highlight=""> $ curl --limit-rate 200k https://google.com </syntaxhighlight> === -o === '''-o''' 参数将服务器的回应保存成文件,等同于'''wget'''命令。 示例: # 将“www.example.com”保存成“example.html”: #: <syntaxhighlight lang="bash" highlight=""> $ curl -o example.html https://www.example.com </syntaxhighlight> === -O === '''-O''' 参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名。 示例: # 将服务器回应保存成文件,文件名为“bar.html”: #: <syntaxhighlight lang="bash" highlight=""> $ curl -O https://www.example.com/foo/bar.html </syntaxhighlight> === -s === '''-s'''参数将不输出错误和进度信息。 * 一旦发生错误,不会显示错误信息。不发生错误的话,会正常显示运行结果。 示例: : <syntaxhighlight lang="bash" highlight=""> $ curl -s https://www.example.com </syntaxhighlight> * 如果想让 curl 不产生任何输出,可以使用下面的命令: #: <syntaxhighlight lang="bash" highlight=""> $ curl -s -o /dev/null https://google.com </syntaxhighlight> === -S === '''-S''' 参数指定只输出错误信息,通常与'''-s'''一起使用。 示例: # 除非发生错误,否则没有任何输出: #: <syntaxhighlight lang="bash" highlight=""> $ curl -s -o /dev/null https://google.com </syntaxhighlight> === -u === '''-u''' 参数用来设置服务器认证的'''用户名和密码'''。 * curl 能够识别 URL 里面的用户名和密码。 示例: # 设置用户名为 bob,密码为 12345,然后将其转为 HTTP 标头“Authorization: Basic Ym9iOjEyMzQ1”:【???】 #: <syntaxhighlight lang="bash" highlight=""> $ curl -u 'bob:12345' https://google.com/login </syntaxhighlight> # 识别 URL 里面的用户名和密码,将其转为上个例子里面的 HTTP 标头: #: <syntaxhighlight lang="bash" highlight=""> $ curl https://bob:12345@google.com/login </syntaxhighlight> # 只设置用户名,执行后,curl 会提示用户输入密码: #: <syntaxhighlight lang="bash" highlight=""> $ curl -u 'bob' https://google.com/login </syntaxhighlight> === -v === '''-v''' 参数输出通信的整个过程,用于调试。 * --trace参数也可以用于调试,还会输出原始的二进制数据。 示例: : <syntaxhighlight lang="bash" highlight=""> $ curl -v https://www.example.com </syntaxhighlight> : <syntaxhighlight lang="bash" highlight=""> $ curl --trace - https://www.example.com </syntaxhighlight> === -x === '''-x'''参数指定 HTTP 请求的'''代理'''。 * 如果没有指定代理协议,默认为 '''HTTP'''。 示例: # 指定 HTTP 请求通过“myproxy.com:8080”的 socks5 代理发出: #: <syntaxhighlight lang="bash" highlight=""> $ curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com </syntaxhighlight> # 如下请求的代理使用 HTTP 协议: #: <syntaxhighlight lang="bash" highlight=""> $ curl -x james:cats@myproxy.com:8080 https://www.example.com </syntaxhighlight> === -X === '''-X''' 参数'''指定 HTTP 请求的方法'''。 示例: # 对“https://www.example.com”发出 POST 请求: #: <syntaxhighlight lang="bash" highlight=""> $ curl -X POST https://www.example.com </syntaxhighlight>
返回至“
Curl 用法指南
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息