curl

curl 请求参数详解

curl 是一个功能强大的命令行工具,用于传输数据,支持多种协议(HTTP、HTTPS、FTP等)。它提供了大量参数来定制请求。以下是 curl 请求的主要参数分类和详细介绍:

基本请求参数

  1. -X/--request [METHOD]

    • 指定HTTP请求方法(GET, POST, PUT, DELETE等)

    • 示例:curl -X POST https://example.com

  2. -d/--data [DATA]

    • 发送POST请求的数据

    • 示例:curl -d "name=John&age=30" https://example.com

  3. -G/--get

    • 将-d参数的数据以GET方式附加到URL后

    • 示例:curl -G -d "q=test" https://example.com/search

  4. -H/--header [HEADER]

    • 添加HTTP头

    • 示例:curl -H "Content-Type: application/json" https://example.com

认证参数

  1. -u/--user [USER:PASSWORD]

    • 设置服务器用户和密码

    • 示例:curl -u username:password https://example.com

  2. --basic

    • 强制使用HTTP Basic认证

    • 示例:curl --basic -u user:pass https://example.com

  3. --digest

    • 使用HTTP Digest认证

    • 示例:curl --digest -u user:pass https://example.com

数据传输参数

  1. -F/--form [NAME=CONTENT]

    • 模拟表单提交,可上传文件

    • 示例:curl -F "file=@photo.jpg" https://example.com/upload

  2. --data-urlencode [DATA]

    • URL编码的POST数据

    • 示例:curl --data-urlencode "name=John Doe" https://example.com

  3. -T/--upload-file [FILE]

    • 上传文件

    • 示例:curl -T localfile https://example.com/upload

输出控制参数

  1. -i/--include

    • 在输出中包含HTTP响应头

    • 示例:curl -i https://example.com

  2. -I/--head

    • 只获取HTTP头信息

    • 示例:curl -I https://example.com

  3. -o/--output [FILE]

    • 将输出写入文件

    • 示例:curl -o output.html https://example.com

  4. -O/--remote-name

    • 使用远程文件名保存输出

    • 示例:curl -O https://example.com/file.txt

  5. -s/--silent

    • 静默模式,不显示进度和错误信息

    • 示例:curl -s https://example.com

  6. -v/--verbose

    • 显示详细操作信息

    • 示例:curl -v https://example.com

连接参数

  1. --connect-timeout [SECONDS]

    • 设置连接超时时间

    • 示例:curl --connect-timeout 10 https://example.com

  2. -m/--max-time [SECONDS]

    • 设置整个操作的最大时间

    • 示例:curl -m 30 https://example.com

  3. --retry [NUM]

    • 失败重试次数

    • 示例:curl --retry 3 https://example.com

  4. --retry-delay [SECONDS]

    • 设置重试间隔时间

    • 示例:curl --retry 3 --retry-delay 5 https://example.com

代理参数

  1. -x/--proxy [PROTOCOL://HOST:PORT]

    • 使用代理服务器

    • 示例:curl -x http://proxy.example.com:8080 https://example.com

  2. --proxy-user [USER:PASSWORD]

    • 设置代理用户名和密码

    • 示例:curl --proxy-user user:pass -x http://proxy.example.com https://example.com

安全参数

  1. -k/--insecure

    • 允许不安全的SSL连接(不验证证书)

    • 示例:curl -k https://example.com

  2. --cacert [FILE]

    • 指定CA证书文件

    • 示例:curl --cacert /path/to/cert.pem https://example.com

  3. --cert [CERTIFICATE]

    • 指定客户端证书

    • 示例:curl --cert client.pem https://example.com

  4. --key [KEY]

    • 指定私钥文件

    • 示例:curl --key key.pem https://example.com

Cookie处理

  1. -b/--cookie [NAME=DATA]

    • 发送Cookie

    • 示例:curl -b "session=1234" https://example.com

  2. -c/--cookie-jar [FILE]

    • 将服务器返回的Cookie保存到文件

    • 示例:curl -c cookies.txt https://example.com

  3. -j/--junk-session-cookies

    • 忽略会话Cookie

    • 示例:curl -j -b cookies.txt https://example.com

其他实用参数

  1. -L/--location

    • 跟随重定向

    • 示例:curl -L https://example.com

  2. --compressed

    • 请求压缩响应

    • 示例:curl --compressed https://example.com

  3. -e/--referer [URL]

    • 设置Referer头

    • 示例:curl -e "https://google.com" https://example.com

  4. -A/--user-agent [NAME]

    • 设置User-Agent

    • 示例:curl -A "Mozilla/5.0" https://example.com

  5. --limit-rate [RATE]

    • 限制传输速度

    • 示例:curl --limit-rate 100K https://example.com/file

  6. -C/--continue-at [OFFSET]

    • 断点续传

    • 示例:curl -C - -O https://example.com/bigfile

高级参数

  1. --resolve [HOST:PORT:ADDRESS]

    • 自定义DNS解析

    • 示例:curl --resolve example.com:443:1.2.3.4 https://example.com

  2. --request-target [PATH]

    • 指定请求目标(原始请求行)

    • 示例:curl --request-target "*" -X OPTIONS http://example.com

  3. --trace [FILE]

    • 将调试信息写入文件

    • 示例:curl --trace trace.txt https://example.com

  4. --trace-ascii [FILE]

    • 类似--trace,但使用ASCII格式

    • 示例:curl --trace-ascii trace.txt https://example.com

  5. --raw

    • 禁用所有内部HTTP解码

    • 示例:curl --raw https://example.com

curl 的参数非常丰富,上述只是常用的一部分。要查看完整参数列表,可以运行 curl --help all 或访问 curl 的官方文档。

posted on 2025-07-06 11:21  云淡枫轻  阅读(47)  评论(0)    收藏  举报