curl命令行工具 https://blog.csdn.net/Michael_lcf/article/details/103049896
wget命令行工具 https://blog.csdn.net/Michael_lcf/article/details/131124583
curl命令行工具
curl 命令行工具是用来请求 Web 资源的。它的名字就是客户端(client)的 URL 工具的意思。该命令行参数丰富。若熟练使用,可以取代 Postman 这一类的图形界面工具。
1、curl 简单使用
-h
来查看请求参数的含义。
-H
指定header。
-v
显示请求的信息。
-X
选项指定其它协议。
超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间。
--connect-timeout
指定连接超时时间。
-m
指定数据传输的最大允许时间。
1.1、curl get
curl -H 'User-Agent:xxxx' -v --connect-timeout 10 -m 20 192.168.168.168:8080/test
1.2、curl post
curl -v 192.168.168.168:8080/test -d 'age=18&name=liming'
curl -v -X POST 192.168.168.168:8080/test -d 'age=18&name=liming'
==================================================
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL
# `Content-Type`标头设置为`application/json`,以指定传输的数据类型为JSON。
# `URL`是目标服务器的URL,`{"key":"value"}`是要发送的JSON数据。
1.3、curl put
curl -v -X PUT 192.168.168.168:8080/test -d 'age=18&name=liming'
1.4、curl delete
curl -v -X DELETE 192.168.168.168:8080/test
1.5、curl POST 上传文件表单
curl http://www.baidu.com/upload \
-X POST \
-F "syslogFile=@/root/a.txt" \
--form-string "ip=192.168.168.2" \
--form-string "mac=44:D1:FA:D2:19:04" \
--form-string "yyyyMMddHHmmss=20230212120202"
2、浏览器常用的User-Agent
谷歌
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
IE
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
火狐
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0
curl
是一个非常强大的命令行工具,用于获取或发送数据,支持多种协议,如 HTTP, HTTPS, FTP, SFTP, TFTP, DICT, TELNET, LDAP, LDAPS 和 FILE。它广泛应用于自动化任务、脚本编写、测试和开发环境中。以下是一些常用的 curl
命令参数:
curl基本使用
-X, --request <command>
:指定请求类型,如GET
,POST
,PUT
,DELETE
等。<URL>
:请求的目标 URL。
输出控制
-o, --output <file>
:将输出写入指定的文件。-O, --remote-name
:将输出写入与远程文件同名的本地文件。-s, --silent
:静默模式,不显示进度条和错误消息。-S, --show-error
:即使在静默模式下,也显示错误信息。-L, --location
:跟随 HTTP 重定向。-I, --head
:只请求 HTTP 头部信息。-D, --dump-header <file>
:将服务器响应的头部信息写入指定文件。-w, --write-out <format>
:自定义输出格式,可以用来输出特定的 HTTP 信息。
数据传输
-d, --data <data>
:发送 POST 数据。--data-binary <data>
:发送二进制 POST 数据。-F, --form <name>=<value>
:发送表单数据。-T, --upload-file <file>
:上传文件。-u, --user <user:password>
:使用基本或摘要认证。-b, --cookie <string>
:发送 Cookie。-H, --header <line>
:自定义 HTTP 请求头。
超时和速度控制
-m, --max-time <seconds>
:设置最大时间限制。-#
:显示传输速度。-x, --proxy <host:port>
:使用代理服务器。--limit-rate <bytes-per-second>
:限制传输速度。
SSL/TLS 相关
-k, --insecure
:忽略 SSL 证书错误。-E, --cert <certificate_file>
:客户端证书。--cacert <ca_certificate>
:CA 证书。--capath <directory>
:CA 证书目录。--resolve <host:port:address>
:解析主机名到特定 IP 地址。
其他
-v, --verbose
:详细模式,显示更多的调试信息。-A, --user-agent <agent>
:设置 User-Agent 字段。--retry <num>
:设置重试次数。--retry-delay <seconds>
:设置重试间隔。
这些参数可以根据具体需求组合使用,以满足复杂的网络请求场景。例如,一个完整的 curl
命令可能如下所示:
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com/resource
这个命令向 https://api.example.com/resource
发送一个 POST 请求,请求头中包含 Content-Type: application/json
,并且发送 JSON 格式的数据 { "key": "value" }
。