Files
reference/docs/curl.html
2025-05-11 17:34:02 +00:00

308 lines
37 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" data-color-mode="dark">
<head>
<meta charset="utf-8">
<title>Curl 备忘清单
&#x26; curl cheatsheet &#x26; Quick Reference</title>
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta description="此 Curl 备忘清单包含命令和一些常见的 Curl 技巧示例。
入门,为开发人员分享快速参考备忘单。">
<meta keywords="curl,reference,Quick,Reference,cheatsheet,cheat,sheet">
<meta name="author" content="jaywcjlove">
<meta name="license" content="MIT">
<meta name="funding" content="https://jaywcjlove.github.io/#/sponsor">
<meta rel="apple-touch-icon" href="../icons/touch-icon-iphone.png">
<meta rel="apple-touch-icon" sizes="152x152" href="../icons/touch-icon-ipad.png">
<meta rel="apple-touch-icon" sizes="180x180" href="../icons/touch-icon-iphone.png">
<meta rel="apple-touch-icon" sizes="167x167" href="../icons/touch-icon-ipad-retina.png">
<meta rel="apple-touch-icon" sizes="120x120" href="../icons/touch-icon-iphone-retina.png">
<link rel="icon" href="../icons/favicon.svg" type="image/svg+xml">
<link href="../style/style.css" rel="stylesheet">
<link href="../style/katex.css" rel="stylesheet">
</head>
<body><nav class="header-nav"><div class="max-container"><a href="../index.html" class="logo"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" height="1em" width="1em">
<path d="m21.66 10.44-.98 4.18c-.84 3.61-2.5 5.07-5.62 4.77-.5-.04-1.04-.13-1.62-.27l-1.68-.4c-4.17-.99-5.46-3.05-4.48-7.23l.98-4.19c.2-.85.44-1.59.74-2.2 1.17-2.42 3.16-3.07 6.5-2.28l1.67.39c4.19.98 5.47 3.05 4.49 7.23Z" fill="#c9d1d9"></path>
<path d="M15.06 19.39c-.62.42-1.4.77-2.35 1.08l-1.58.52c-3.97 1.28-6.06.21-7.35-3.76L2.5 13.28c-1.28-3.97-.22-6.07 3.75-7.35l1.58-.52c.41-.13.8-.24 1.17-.31-.3.61-.54 1.35-.74 2.2l-.98 4.19c-.98 4.18.31 6.24 4.48 7.23l1.68.4c.58.14 1.12.23 1.62.27Zm2.43-8.88c-.06 0-.12-.01-.19-.02l-4.85-1.23a.75.75 0 0 1 .37-1.45l4.85 1.23a.748.748 0 0 1-.18 1.47Z" fill="#228e6c"></path>
<path d="M14.56 13.89c-.06 0-.12-.01-.19-.02l-2.91-.74a.75.75 0 0 1 .37-1.45l2.91.74c.4.1.64.51.54.91-.08.34-.38.56-.72.56Z" fill="#228e6c"></path>
</svg>
<span class="title">Quick Reference</span></a><div class="menu"><a href="javascript:void(0);" class="searchbtn" id="searchbtn"><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><span>搜索</span><span>⌘K</span></a><a href="https://github.com/jaywcjlove/reference/blob/main/docs/curl.md" class="edit" target="__blank"><svg viewBox="0 0 36 36" fill="currentColor" height="1em" width="1em"><path d="m33 6.4-3.7-3.7a1.71 1.71 0 0 0-2.36 0L23.65 6H6a2 2 0 0 0-2 2v22a2 2 0 0 0 2 2h22a2 2 0 0 0 2-2V11.76l3-3a1.67 1.67 0 0 0 0-2.36ZM18.83 20.13l-4.19.93 1-4.15 9.55-9.57 3.23 3.23ZM29.5 9.43 26.27 6.2l1.85-1.85 3.23 3.23Z"></path><path fill="none" d="M0 0h36v36H0z"></path></svg><span>编辑</span></a><button id="darkMode" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="light" height="1em" width="1em">
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM11 19h2v3h-2zm0-17h2v3h-2zm-9 9h3v2H2zm17 0h3v2h-3zM5.637 19.778l-1.414-1.414 2.121-2.121 1.414 1.414zM16.242 6.344l2.122-2.122 1.414 1.414-2.122 2.122zM6.344 7.759 4.223 5.637l1.415-1.414 2.12 2.122zm13.434 10.605-1.414 1.414-2.122-2.122 1.414-1.414z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" class="dark" height="1em" width="1em">
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"></path>
</svg>
</button><script src="../js/dark.js?v=1.8.3"></script><a href="https://github.com/jaywcjlove/reference" class="" target="__blank"><svg viewBox="0 0 16 16" fill="currentColor" height="1em" width="1em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a></div></div></nav><div class="wrap h1body-exist max-container"><header class="wrap-header h1wrap"><h1 id="curl-备忘清单"><svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" fill="currentColor" height="1em" width="1em">
<path d="M107.946667 838.4l57.173333 23.893333v-385.28l-103.68 250.026667c-17.493333 43.52 3.413333 93.44 46.506667 111.36z m832-157.866667L728.32 169.813333a85.888 85.888 0 0 0-77.226667-52.48c-11.093333 0-22.613333 1.706667-33.706666 6.4L302.933333 253.866667a85.290667 85.290667 0 0 0-46.08 110.933333l211.626667 510.72a85.248 85.248 0 0 0 110.933333 46.08l314.026667-130.133333a85.077333 85.077333 0 0 0 46.506667-110.933334zM336.213333 373.333333c-23.466667 0-42.666667-19.2-42.666666-42.666666s19.2-42.666667 42.666666-42.666667 42.666667 19.2 42.666667 42.666667-19.2 42.666667-42.666667 42.666666z m-85.333333 469.333334c0 46.933333 38.4 85.333333 85.333333 85.333333h61.866667l-147.2-355.84v270.506667z"></path>
</svg><a aria-hidden="true" tabindex="-1" href="#curl-备忘清单"><span class="icon icon-link"></span></a>Curl 备忘清单</h1><div class="wrap-body">
<p><a href="https://github.com/curl/curl">Curl</a> 备忘清单包含命令和一些常见的 Curl 技巧示例。</p>
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#介绍">介绍</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#options">Options</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#请求">请求</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#数据">数据</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#头信息-headers">头信息 Headers</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ssl">SSL</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#安装">安装</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#示例">示例</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#curl-gethead">CURL GET/HEAD</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#多文件上传">多文件上传</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#为-curl-响应美化-json-输出">为 curl 响应美化 json 输出</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#curl-post">CURL POST</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#curl-脚本安装-rvm">CURL 脚本安装 rvm</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#curl-高级">CURL 高级</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#检查网站响应时间">检查网站响应时间</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#使用-curl-检查远程资源是否可用">使用 Curl 检查远程资源是否可用</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#正在下载文件">正在下载文件</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#下载文件保存文件而不更改其名称">下载文件,保存文件而不更改其名称</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#继续部分下载">继续部分下载</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#从多个域下载文件">从多个域下载文件</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#下载一系列文件">下载一系列文件</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#将输出重定向到文件">将输出重定向到文件</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#基本认证">基本认证</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#写入文件而不是标准输出">写入文件而不是标准输出</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#下载头信息">下载头信息</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#将输出写入名为远程文件的文件">将输出写入名为远程文件的文件</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#执行远程脚本">执行远程脚本</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#配置文件">配置文件</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="介绍"><a aria-hidden="true" tabindex="-1" href="#介绍"><span class="icon icon-link"></span></a>介绍</h3><div class="wrap-body">
<p>Curl 是一种在服务器之间传输数据的工具,支持协议,包括 HTTP/FTP/IMAP/LDAP/POP3/SCP/SFTP/SMB/SMTP 等</p>
<ul>
<li><a href="https://github.com/curl/curl">Curl GitHub 源码仓库</a> <em>(github.com)</em></li>
<li><a href="https://curl.se/">Curl 官方网站</a> <em>(curl.se)</em></li>
</ul>
</div></div></div><div class="wrap h3body-not-exist col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="options"><a aria-hidden="true" tabindex="-1" href="#options"><span class="icon icon-link"></span></a>Options</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2 row-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token parameter variable">-o</span> <span class="token operator">&#x3C;</span>file<span class="token operator">></span> <span class="token comment"># --output: 写入文件</span>
</span><span class="code-line"><span class="token parameter variable">-u</span> user:pass <span class="token comment"># --user: 验证</span>
</span></code></pre>
<hr>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token parameter variable">-v</span> <span class="token comment"># --verbose: 在操作期间使 curl 冗长</span>
</span><span class="code-line"><span class="token parameter variable">-vv</span> <span class="token comment"># 更冗长</span>
</span><span class="code-line"><span class="token parameter variable">-s</span> <span class="token comment"># --silent: 不显示进度表或错误</span>
</span><span class="code-line"><span class="token parameter variable">-S</span> <span class="token comment"># --show-error: 与 --silent (-sS) 一起使用时,显示错误但没有进度表</span>
</span></code></pre>
<hr>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token parameter variable">-i</span> <span class="token comment"># --include: 在输出中包含 HTTP 标头</span>
</span><span class="code-line"><span class="token parameter variable">-I</span> <span class="token comment"># --head: 仅标头</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="请求"><a aria-hidden="true" tabindex="-1" href="#请求"><span class="icon icon-link"></span></a>请求</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line"><span class="token parameter variable">-X</span> POST <span class="token comment"># --request</span>
</span><span class="code-line"><span class="token parameter variable">-L</span> <span class="token comment"># 如果页面重定向,请点击链接</span>
</span><span class="code-line"><span class="token parameter variable">-F</span> <span class="token comment"># --form: multipart/form-data 的 HTTP POST 数据</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="数据"><a aria-hidden="true" tabindex="-1" href="#数据"><span class="icon icon-link"></span></a>数据</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># --data: HTTP post 数据</span>
</span><span class="code-line"><span class="token comment"># URL 编码(例如status="Hello")</span>
</span><span class="code-line"><span class="token parameter variable">-d</span> <span class="token string">'data'</span>
</span><span class="code-line">
</span><span class="code-line"><span class="token comment"># --data 通过文件</span>
</span><span class="code-line"><span class="token parameter variable">-d</span> @file
</span><span class="code-line">
</span><span class="code-line"><span class="token comment"># --get: 通过 get 发送 -d 数据</span>
</span><span class="code-line"><span class="token parameter variable">-G</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="头信息-headers"><a aria-hidden="true" tabindex="-1" href="#头信息-headers"><span class="icon icon-link"></span></a>头信息 Headers</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token parameter variable">-A</span> <span class="token operator">&#x3C;</span>str<span class="token operator">></span> <span class="token comment"># --user-agent</span>
</span><span class="code-line"><span class="token parameter variable">-b</span> <span class="token assign-left variable">name</span><span class="token operator">=</span>val <span class="token comment"># --cookie</span>
</span><span class="code-line">
</span><span class="code-line"><span class="token comment"># 从 URL 的指定文件加载 cookie</span>
</span><span class="code-line">-b, <span class="token parameter variable">--cookie</span> FILE
</span><span class="code-line"><span class="token comment"># 将 cookie 从 URL 保存到指定文件</span>
</span><span class="code-line">-c, --cookie-jar FILE
</span><span class="code-line">
</span><span class="code-line"><span class="token parameter variable">-b</span> FILE <span class="token comment"># --cookie</span>
</span><span class="code-line"><span class="token parameter variable">-H</span> <span class="token string">"X-Foo: y"</span> <span class="token comment"># --header</span>
</span><span class="code-line"><span class="token parameter variable">--compressed</span> <span class="token comment"># 使用 deflate/gzip</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="ssl"><a aria-hidden="true" tabindex="-1" href="#ssl"><span class="icon icon-link"></span></a>SSL</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"> <span class="token parameter variable">--cacert</span> <span class="token operator">&#x3C;</span>file<span class="token operator">></span>
</span><span class="code-line"> <span class="token parameter variable">--capath</span> <span class="token operator">&#x3C;</span>dir<span class="token operator">></span>
</span></code></pre>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">-E, <span class="token parameter variable">--cert</span> <span class="token operator">&#x3C;</span>cert<span class="token operator">></span> <span class="token comment"># --cert: 客户端证书文件</span>
</span><span class="code-line"> --cert-type <span class="token comment"># der/pem/eng</span>
</span><span class="code-line">-k, <span class="token parameter variable">--insecure</span> <span class="token comment"># 对于自签名证书</span>
</span></code></pre>
<h4 id="安装"><a aria-hidden="true" tabindex="-1" href="#安装"><span class="icon icon-link"></span></a>安装</h4>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">apk <span class="token function">add</span> <span class="token parameter variable">--update</span> <span class="token function">curl</span> <span class="token comment"># alpine linux 中安装</span>
</span></code></pre>
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="示例"><a aria-hidden="true" tabindex="-1" href="#示例"><span class="icon icon-link"></span></a>示例</h2><div class="wrap-body">
<!--rehype:body-class=cols-6-->
</div></div><div class="h2wrap-body cols-6"><div class="wrap h3body-not-exist col-span-4 row-span-2"><div class="wrap-header h3wrap"><h3 id="curl-gethead"><a aria-hidden="true" tabindex="-1" href="#curl-gethead"><span class="icon icon-link"></span></a>CURL GET/HEAD</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-4 row-span-2-->
<table class="auto-wrap"><thead><tr><th align="left">命令</th><th align="left">说明</th></tr></thead><tbody><tr><td align="left"><code>curl -I https://www.baidu.com</code></td><td align="left"><code>curl</code> 发请求</td></tr><tr><td align="left"><code>curl -v -I https://www.baidu.com</code></td><td align="left">带有详细信息的 <code>curl</code> 发请求</td></tr><tr><td align="left"><code>curl -X GET https://www.baidu.com</code></td><td align="left">使用显式 http 方法进行 <code>curl</code></td></tr><tr><td align="left"><code>curl --noproxy 127.0.0.1 http://www.stackoverflow.com</code></td><td align="left">没有 http 代理的 <code>curl</code></td></tr><tr><td align="left"><code>curl --connect-timeout 10 -I -k https://www.baidu.com</code></td><td align="left"><code>curl</code> 默认没有超时</td></tr><tr><td align="left"><code>curl --verbose --header "Host: www.mytest.com:8182" www.baidu.com</code></td><td align="left"><code>curl</code> 得到额外的标题</td></tr><tr><td align="left"><code>curl -k -v https://www.google.com</code></td><td align="left"><code>curl</code> 获取带有标题的响应</td></tr></tbody></table>
<!--rehype:class=auto-wrap-->
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="多文件上传"><a aria-hidden="true" tabindex="-1" href="#多文件上传"><span class="icon icon-link"></span></a>多文件上传</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-v</span> <span class="token parameter variable">-include</span> <span class="token punctuation">\</span>
</span><span class="code-line"> <span class="token parameter variable">--form</span> <span class="token assign-left variable">key1</span><span class="token operator">=</span>value1 <span class="token punctuation">\</span>
</span><span class="code-line"> <span class="token parameter variable">--form</span> <span class="token assign-left variable">upload</span><span class="token operator">=</span>@localfilename URL
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="为-curl-响应美化-json-输出"><a aria-hidden="true" tabindex="-1" href="#为-curl-响应美化-json-输出"><span class="icon icon-link"></span></a>为 curl 响应美化 json 输出</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-XGET</span> http://<span class="token variable">${elasticsearch_ip}</span>:9200/_cluster/nodes <span class="token operator">|</span> python <span class="token parameter variable">-m</span> json.tool
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist col-span-4"><div class="wrap-header h3wrap"><h3 id="curl-post"><a aria-hidden="true" tabindex="-1" href="#curl-post"><span class="icon icon-link"></span></a>CURL POST</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-4-->
<table class="auto-wrap"><thead><tr><th align="left">命令</th><th align="left">说明</th></tr></thead><tbody><tr><td align="left"><code>curl -d "name=username&#x26;password=123456" &#x3C;URL></code></td><td align="left"><code>curl</code> 发请求</td></tr><tr><td align="left"><code>curl &#x3C;URL> -H "content-type: application/json" -d "{ \"woof\": \"bark\"}"</code></td><td align="left"><code>curl</code> 发送 json</td></tr></tbody></table>
<!--rehype:class=auto-wrap-->
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="curl-脚本安装-rvm"><a aria-hidden="true" tabindex="-1" href="#curl-脚本安装-rvm"><span class="icon icon-link"></span></a>CURL 脚本安装 rvm</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">curl</span> <span class="token parameter variable">-sSL</span> https://get.rvm.io <span class="token operator">|</span> <span class="token function">bash</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-6"><div class="wrap-header h3wrap"><h3 id="curl-高级"><a aria-hidden="true" tabindex="-1" href="#curl-高级"><span class="icon icon-link"></span></a>CURL 高级</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-6-->
<table class="auto-wrap"><thead><tr><th align="left">命令</th><th align="left">说明</th></tr></thead><tbody><tr><td align="left"><code>curl -L -s http://ipecho.net/plain, curl -L -s http://whatismijnip.nl</code></td><td align="left">获取我的公共 <code>IP</code></td></tr><tr><td align="left"><code>curl -u $username:$password http://repo.dennyzhang.com/README.txt</code></td><td align="left">带凭证的 <code>curl</code></td></tr><tr><td align="left"><code>curl -v -F key1=value1 -F upload=@localfilename &#x3C;URL></code></td><td align="left"><code>curl</code> 上传</td></tr><tr><td align="left"><code>curl -k -v --http2 https://www.google.com/</code></td><td align="left">使用 http2 curl</td></tr><tr><td align="left"><code>curl -T cryptopp552.zip -u test:test ftp://10.32.99.187/</code></td><td align="left">curl <code>ftp</code> 上传</td></tr><tr><td align="left"><code>curl -u test:test ftp://10.32.99.187/cryptopp552.zip -o cryptopp552.zip</code></td><td align="left">curl <code>ftp</code> 下载</td></tr><tr><td align="left"><code>curl -v -u admin:admin123 --upload-file package1.zip http://mysever:8081/dir/package1.zip</code></td><td align="left">使用凭证 <code>curl</code> 上传</td></tr></tbody></table>
<!--rehype:class=auto-wrap-->
</div></div></div><div class="wrap h3body-not-exist col-span-4"><div class="wrap-header h3wrap"><h3 id="检查网站响应时间"><a aria-hidden="true" tabindex="-1" href="#检查网站响应时间"><span class="icon icon-link"></span></a>检查网站响应时间</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-4-->
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line"><span class="token function">curl</span> <span class="token parameter variable">-s</span> <span class="token parameter variable">-w</span> <span class="token punctuation">\</span>
</span><span class="code-line"> <span class="token string">'\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nAppCon time:\t%{time_appconnect}\nRedirect time:\t%{time_redirect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n'</span> <span class="token punctuation">\</span>
</span><span class="code-line"> <span class="token parameter variable">-o</span> /dev/null https://www.google.com
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="使用-curl-检查远程资源是否可用"><a aria-hidden="true" tabindex="-1" href="#使用-curl-检查远程资源是否可用"><span class="icon icon-link"></span></a>使用 Curl 检查远程资源是否可用</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line"><span class="token function">curl</span> <span class="token parameter variable">-o</span> /dev/null <span class="token parameter variable">--silent</span> <span class="token parameter variable">-Iw</span> <span class="token string">"%{http_code}"</span> https://example.com/my.remote.tarball.gz
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist col-span-3"><div class="wrap-header h3wrap"><h3 id="正在下载文件"><a aria-hidden="true" tabindex="-1" href="#正在下载文件"><span class="icon icon-link"></span></a>正在下载文件</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-3-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">curl</span> https://example.com <span class="token operator">|</span> <span class="token punctuation">\</span>
</span><span class="code-line"><span class="token function">grep</span> --only-matching <span class="token string">'src="[^"]*.[png]"'</span> <span class="token operator">|</span> <span class="token punctuation">\</span>
</span><span class="code-line"><span class="token function">cut</span> -d<span class="token punctuation">\</span>" <span class="token parameter variable">-f2</span> <span class="token operator">|</span> <span class="token punctuation">\</span>
</span><span class="code-line"><span class="token keyword">while</span> <span class="token builtin class-name">read</span> i<span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token function">curl</span> https://example.com/<span class="token string">"<span class="token variable">${i}</span>"</span> <span class="token punctuation">\</span>
</span><span class="code-line"><span class="token parameter variable">-o</span> <span class="token string">"<span class="token variable">${i<span class="token operator">##</span>*<span class="token operator">/</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">done</span>
</span></code></pre>
<p>从站点下载所有 PNG 文件使用GNU grep</p>
</div></div></div><div class="wrap h3body-not-exist col-span-3"><div class="wrap-header h3wrap"><h3 id="下载文件保存文件而不更改其名称"><a aria-hidden="true" tabindex="-1" href="#下载文件保存文件而不更改其名称"><span class="icon icon-link"></span></a>下载文件,保存文件而不更改其名称</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-3-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">curl</span> --remote-name <span class="token string">"https://example.com/linux-distro.iso"</span>
</span></code></pre>
<p>重命名文件</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">curl</span> --remote-name <span class="token string">"http://example.com/index.html"</span> <span class="token parameter variable">--output</span> foo.html
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-3"><div class="wrap-header h3wrap"><h3 id="继续部分下载"><a aria-hidden="true" tabindex="-1" href="#继续部分下载"><span class="icon icon-link"></span></a>继续部分下载</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-3-->
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line"><span class="token function">curl</span> --remote-name --continue-at - <span class="token string">"https://example.com/linux-distro.iso"</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist col-span-3"><div class="wrap-header h3wrap"><h3 id="从多个域下载文件"><a aria-hidden="true" tabindex="-1" href="#从多个域下载文件"><span class="icon icon-link"></span></a>从多个域下载文件</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-3-->
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line"><span class="token function">curl</span> <span class="token string">"https://www.{example,w3,iana}.org/index.html"</span> <span class="token parameter variable">--output</span> <span class="token string">"file_#1.html"</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist col-span-3"><div class="wrap-header h3wrap"><h3 id="下载一系列文件"><a aria-hidden="true" tabindex="-1" href="#下载一系列文件"><span class="icon icon-link"></span></a>下载一系列文件</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-3-->
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line"><span class="token function">curl</span> <span class="token string">"https://{foo,bar}.com/file_[1-4].webp"</span> <span class="token parameter variable">--output</span> <span class="token string">"#1_#2.webp"</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>下载一系列文件(输出<code>foo_file1.webp</code><code>foo_file2.webp…bar_file1_webp</code>等)</p>
</div></div></div><div class="wrap h3body-not-exist col-span-3"><div class="wrap-header h3wrap"><h3 id="将输出重定向到文件"><a aria-hidden="true" tabindex="-1" href="#将输出重定向到文件"><span class="icon icon-link"></span></a>将输出重定向到文件</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-3-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> http://url/file <span class="token operator">></span> <span class="token function">file</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-3"><div class="wrap-header h3wrap"><h3 id="基本认证"><a aria-hidden="true" tabindex="-1" href="#基本认证"><span class="icon icon-link"></span></a>基本认证</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-3-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">--user</span> username:password http://example.com/
</span><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-u</span> username:password http://example.com/
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="写入文件而不是标准输出"><a aria-hidden="true" tabindex="-1" href="#写入文件而不是标准输出"><span class="icon icon-link"></span></a>写入文件而不是标准输出</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-o</span> <span class="token function">file</span> http://url/file
</span><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">--output</span> <span class="token function">file</span> http://url/file
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="下载头信息"><a aria-hidden="true" tabindex="-1" href="#下载头信息"><span class="icon icon-link"></span></a>下载头信息</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-I</span> url
</span><span class="code-line"><span class="token comment"># 显示头信息</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="将输出写入名为远程文件的文件"><a aria-hidden="true" tabindex="-1" href="#将输出写入名为远程文件的文件"><span class="icon icon-link"></span></a>将输出写入名为远程文件的文件</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-o</span> <span class="token function">file</span> http://url/file
</span><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">--output</span> <span class="token function">file</span> http://url/file
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="执行远程脚本"><a aria-hidden="true" tabindex="-1" href="#执行远程脚本"><span class="icon icon-link"></span></a>执行远程脚本</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-s</span> http://url/myscript.sh
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="配置文件"><a aria-hidden="true" tabindex="-1" href="#配置文件"><span class="icon icon-link"></span></a>配置文件</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">curl</span> <span class="token parameter variable">-K</span> <span class="token function">file</span>
</span><span class="code-line"><span class="token comment"># 从文件中读取配置</span>
</span><span class="code-line"><span class="token function">curl</span> <span class="token parameter variable">--config</span> <span class="token function">file</span>
</span><span class="code-line"><span class="token environment constant">$HOME</span>/.curlrc <span class="token comment"># 类 UNIX 系统中的默认配置文件</span>
</span></code></pre>
</div></div></div></div></div></div><script src="https://giscus.app/client.js" data-repo="jaywcjlove/reference" data-repo-id="R_kgDOID2-Mw" data-category="Q&#x26;A" data-category-id="DIC_kwDOID2-M84CS5wo" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="dark" data-lang="zh-CN" crossorigin="anonymous" async></script><div class="giscus"></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>.</footer></footer><script src="../data.js?v=1.8.3" defer></script><script src="../js/fuse.min.js?v=1.8.3" defer></script><script src="../js/main.js?v=1.8.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><input id="mysearch-input" type="search" placeholder="搜索" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">搜索</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>
</html>