diff --git a/docs/curl.html b/docs/curl.html new file mode 100644 index 00000000..1011c886 --- /dev/null +++ b/docs/curl.html @@ -0,0 +1,249 @@ + + + + +Curl 备忘清单 + & curl cheatsheet & Quick Reference + + + + + + +

+ +Curl 备忘清单

+

Curl 备忘清单包含命令和一些常见的 Curl 技巧示例。

+

入门

+

介绍

+

Curl 是一种在服务器之间传输数据的工具,支持协议,包括 HTTP/FTP/IMAP/LDAP/POP3/SCP/SFTP/SMB/SMTP 等

+ +

Options

+ +
-o <file>    # --output: 写入文件
+-u user:pass # --user: 验证
+
+
+
-v           # --verbose: 在操作期间使 curl 冗长
+-vv          # 更冗长
+-s           # --silent: 不显示进度表或错误
+-S           # --show-error: 与 --silent (-sS) 一起使用时,显示错误但没有进度表
+
+
+
-i           # --include: 在输出中包含 HTTP 标头
+-I           # --head: 仅标头
+
+

请求

+
-X POST # --request
+-L  # 如果页面重定向,请点击链接
+-F  # --form: multipart/form-data 的 HTTP POST 数据
+
+ +

数据

+
# --data: HTTP post 数据
+# URL 编码(例如,status="Hello")
+-d 'data'
+
+# --data 通过文件
+-d @file
+
+# --get: 通过 get 发送 -d 数据
+-G
+
+

头信息 Headers

+
-A <str>         # --user-agent
+
+-b name=val      # --cookie
+
+-b FILE          # --cookie
+
+-H "X-Foo: y"    # --header
+
+--compressed     # 使用 deflate/gzip
+
+

SSL

+
    --cacert <file>
+    --capath <dir>
+
+
-E, --cert <cert>     # --cert: 客户端证书文件
+    --cert-type       # der/pem/eng
+-k, --insecure        # 对于自签名证书
+
+

安装

+
apk add --update curl  # alpine linux 中安装
+
+

示例

+ +

CURL GET/HEAD

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
命令说明
curl -I https://www.baidu.comcurl 发请求
curl -v -I https://www.baidu.com带有详细信息的 curl 发请求
curl -X GET https://www.baidu.com使用显式 http 方法进行 curl
curl --noproxy 127.0.0.1 http://www.stackoverflow.com没有 http 代理的 curl
curl --connect-timeout 10 -I -k https://www.baidu.comcurl 默认没有超时
curl --verbose --header "Host: www.mytest.com:8182" www.baidu.comcurl 得到额外的标题
curl -k -v https://www.google.comcurl 获取带有标题的响应
+

多文件上传

+ +
$ curl -v -include \
+    --form key1=value1 \
+    --form upload=@localfilename URL
+
+

为 curl 响应美化 json 输出

+ +
$ curl -XGET http://${elasticsearch_ip}:9200/_cluster/nodes | python -m json.tool
+
+ +

CURL POST

+ + + + + + + + + + + + + + + + + + +
命令说明
curl -d "name=username&password=123456" <URL>curl 发请求
curl <URL> -H "content-type: application/json" -d "{ \"woof\": \"bark\"}"curl 发送 json
+

CURL 脚本安装 rvm

+ +
curl -sSL https://get.rvm.io | bash
+
+

CURL 高级

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
命令说明
curl -L -s http://ipecho.net/plain, curl -L -s http://whatismijnip.nl获取我的公共 IP
curl -u $username:$password http://repo.dennyzhang.com/README.txt带凭证的 curl
curl -v -F key1=value1 -F upload=@localfilename <URL>curl 上传
curl -k -v --http2 https://www.google.com/使用 http2 curl
curl -T cryptopp552.zip -u test:test ftp://10.32.99.187/curl ftp 上传
curl -u test:test ftp://10.32.99.187/cryptopp552.zip -o cryptopp552.zipcurl ftp 下载
curl -v -u admin:admin123 --upload-file package1.zip http://mysever:8081/dir/package1.zip使用凭证 curl 上传
+

检查网站响应时间

+ +
curl -s -w \
+     '\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' \
+     -o /dev/null https://www.google.com
+
+ +

使用 Curl 检查远程资源是否可用

+ +
curl -o /dev/null --silent -Iw "%{http_code}" https://example.com/my.remote.tarball.gz
+
+ +
+ diff --git a/index.html b/index.html index 3be4fb41..aa70ae87 100644 --- a/index.html +++ b/index.html @@ -182,7 +182,10 @@ XPath

Linux 命令