37 lines
1.6 KiB
Markdown
37 lines
1.6 KiB
Markdown
# curl
|
||
|
||
> 从服务器传输数据。
|
||
> 支持大多数协议,包括 HTTP、HTTPS、FTP、SCP 等。
|
||
> 更多信息:<https://curl.se/docs/manpage.html>。
|
||
|
||
- 发起一个 HTTP GET 请求,并将内容输出到 `stdout`:
|
||
|
||
`curl {{https://example.com}}`
|
||
|
||
- 发起一个 HTTP GET 请求,跟随任何 `3xx` 重定向,并将回复的头部和内容输出到 `stdout`:
|
||
|
||
`curl --location --dump-header - {{https://example.com}}`
|
||
|
||
- 下载文件,将输出保存为 URL 指定的文件名:
|
||
|
||
`curl --remote-name {{https://example.com/filename.zip}}`
|
||
|
||
- 发送表单编码的数据(`application/x-www-form-urlencoded` 类型的 POST 请求)。使用 `--data @file_name` 或 `--data @'-'` 从 `stdin` 读取:
|
||
|
||
`curl -X POST --data {{'name=bob'}} {{http://example.com/form}}`
|
||
|
||
- 使用额外的头部、定制的 HTTP 方法并通过代理(如 BurpSuite)发送请求,忽略不安全的自签名证书:
|
||
|
||
`curl -k --proxy {{http://127.0.0.1:8080}} --header {{'Authorization: Bearer token'}} --request {{GET|PUT|POST|DELETE|PATCH|...}} {{https://example.com}}`
|
||
|
||
- 以 JSON 格式发送数据,指定适当的 Content-Type 头部:
|
||
|
||
`curl --data {{'{"name":"bob"}'}} --header {{'Content-Type: application/json'}} {{http://example.com/users/1234}}`
|
||
|
||
- 为资源传递客户端证书和密钥,跳过证书验证:
|
||
|
||
`curl --cert {{client.pem}} --key {{key.pem}} --insecure {{https://example.com}}`
|
||
|
||
- 将主机名解析为自定义 IP 地址,并输出详细信息(类似于编辑 `/etc/hosts` 文件以实现自定义 DNS 解析):
|
||
|
||
`curl --verbose --resolve {{example.com}}:{{80}}:{{127.0.0.1}} {{http://example.com}}` |