curl的命令行界面


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2020/02/23/curl%E7%9A%84%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2/

摘要

本文主要讲述了:

  1. 查看版本
  2. 查看帮助
  3. 指定请求 URL
  4. 啰嗦模式
  5. 指定请求方法
  6. 指定请求头
  7. 指定 cookie 请求头
  8. 指定 userAgent 请求头
  9. 指定请求体
  10. 跟随重定向
  11. HEAD 方法
  12. 下载文件

正文

查看版本

1
2
3
#!/usr/bin/env bash

curl --version

查看帮助

1
2
3
#!/usr/bin/env bash

curl --help

指定请求 URL

示例:

1
2
3
#!/usr/bin/env bash

curl https://example.com

啰嗦模式

示例:

1
2
3
#!/usr/bin/env bash

curl --verbose https://example.com

指定请求方法

注意:curl 的默认请求方法为GET

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env bash

# GET请求
curl --request GET https://example.com

# POST请求
curl --request POST https://example.com

# PUT请求
curl --request PUT https://example.com

# DELETE请求
curl --request DELETE https://example.com

指定请求头

示例:

1
2
3
4
5
6
7
#!/usr/bin/env bash

# 单个
curl --header 'Cookie: jsweibo=123' https://example.com

# 多个
curl --header 'Cookie: jsweibo=123' --header 'Authorization: jsweibo' https://example.com

示例:

1
2
3
#!/usr/bin/env bash

curl --cookie 'a=1;b=2;c=3' https://example.com

指定 userAgent 请求头

示例:

1
2
3
#!/usr/bin/env bash

curl --user-agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36' https://example.com

指定请求体

注意:若使用--data,默认请求方法将变为POST

示例:POST请求,Content-Type: application/x-www-form-urlencoded

1
2
3
#!/usr/bin/env bash

curl --data 'a=1&b=2&c=3' https://example.com

示例:POST请求,Content-Type: application/json

1
2
3
#!/usr/bin/env bash

curl --header 'Content-Type: application/json' --data '[1, 2, 3, 4, 5]' https://example.com

跟随重定向

注:即Location响应头

示例:

1
2
3
#!/usr/bin/env bash

curl --location https://bing.com

HEAD 方法

示例:

1
2
3
#!/usr/bin/env bash

curl --head https://bing.com

下载文件

使用 URL 中的文件名作为输出文件名

注:若不使用--remote-name,则将文件内容打印在标准输出

示例:下载README.md并保存为README.md?a=1&b=2&c=3

1
2
3
#!/usr/bin/env bash

curl --remote-name 'http://127.0.0.1:3000/README.md?a=1&b=2&c=3'

指定输出文件名

示例:下载README.md并保存为test.md

1
2
3
#!/usr/bin/env bash

curl --output 'test.md' 'http://127.0.0.1:3000/README.md?a=1&b=2&c=3'

使用响应头中的文件名作为输出文件名

注:即Content-Disposition响应头中的filename指令的值

示例:下载README.md并保存为README.md

1
2
3
#!/usr/bin/env bash

curl --remote-name --remote-header-name 'http://127.0.0.1:3000/README.md?a=1&b=2&c=3'

不显示下载进度条

示例:

1
2
3
#!/usr/bin/env bash

curl --silent --remote-name --remote-header-name 'http://127.0.0.1:3000/README.md?a=1&b=2&c=3'

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2020/02/23/curl%E7%9A%84%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2/


本文对你有帮助?请支持我


支付宝
微信