Command

cURL

2022-04-18

cURL (client URL) 是一个开源的命令行工具和库,用于在各种网络协议(如 HTTP、HTTPS、FTP 等)下进行数据传输和请求测试。

Terminal window
# 语法
curl <url>
# 默认是用 GET 方式获取(请求网站一般是源码形式返回)
curl gardwn.immwind.com

参数

  • -d --data: 以 POST 方式传输数据
  • -k, --insecure:允许不使用证书连接 SSL(—insecure)
  • -l, --silent:静默模式
  • -o, output:输出内容到指定文件 -o /dev/null
  • -s, --silent: 不显示进度和错误信息
  • -u, --user: 账号密码 (相当于设置http头 Authorization)
    • -u user:passwd
    • -u user 手动输入密码
  • -w, --write-out:完成后输出指定数据
    • 输出状态码: -w "%{http_code}\n
  • -F, --form: 文件
  • -H, --header: 自定义头信息 -H 'Content-type: application/json'
  • -L, --location: 跟随重定向
  • -O, --remote-name: 以原始文件名保存到本地
  • -X, --request:指定请求方式 -X POST
  • --digest:使用 Digest 方式验证

使用

请求

POST

Terminal window
curl 10.1.1.1 -d 'username=immwind&password=123456'
# 以 JSON 格式请求
curl 10.1.1.1 -d '{"username":"immwind", "password":"123456"}'

发送 form-data

[[Linux]] 必须在文件路径前添加 @ 符号

Terminal window
curl -X POST -F 'file=@/path/to/file' http://example.com/upload

响应

如果响应内容遇到中文乱码,或者希望能够对内容进行格式化,可以使用 [[jq]]

Terminal window
curl 10.1.1.1 | jq

验证

digest

[[hikvision]] 可使用这个方式验证操控

Terminal window
# 以 digest 方式验证
curl --digest -u <user>:<password> url -X PUT -d "<data>"