Linux curl 指令学习总结,发送 POST请求,GET请求示例,添加多个请求头
Linux 中 当环境中已经具备 curl 工具时可以使用,在 Linux 操作系统中经常用来测试网络和url的联通性,模拟正常的网络访问指令选项只获得对方的响应首部信息curl -I http://xxxxxxxx.xxx显示一次HTTP请求的通信过程,请求内容包括请求头和请求内容等详细信息curl -v http://xxxxxxxx.xxx执行 GET/POST/PUT/DELETE 操作-
Linux 中 当环境中已经具备 curl 工具时可以使用,在 Linux 操作系统中经常用来测试网络和url的联通性,模拟正常的网络访问
一般指令选项
-
只获得对方的响应首部信息
curl -I http://xxxxxxxx.xxx -
显示一次HTTP请求的通信过程,请求内容包括请求头和请求内容等详细信息
curl -v http://xxxxxxxx.xxx -
执行 GET/POST/PUT/DELETE 操作
-X 后加指定方式去请求
curl -X PUT www.baidu.com
curl -X DELETE www.baidu.com
curl -X POST www.baidu.com
curl -X GET www.baidu.com
-
连接超时时间用 –connect-timeout 参数指定;数据传输最大允许时间用 -m 参数来指定
curl -connect-timeout 100 -m 20 “http://xxxxxxxx.xxx/” -
上传和下载
curl -o [文件名] www.xxx.xxxx
上传
curl -T [文件名] ftp://user:pwd@ip/docs
下载
curl -O ftp://user:pwd@ip/filename
-o 和 -O 区别:
小写 o 是保存到命令中指定的文件名,大写 O 是使用 URL 中的文件名
curl -w
是一个命令行选项,用于指定在执行完HTTP请求之后,curl命令应该如何输出关于本次请求的统计信息。这里的 -w
代表 --write-out
的简写形式,后面可以跟上一个格式字符串来定义你想要显示的信息内容。
例如,你可以使用以下命令来获取一个HTTP请求的耗时、HTTP状态码等信息:
curl -w "\nHTTP代码:%{http_code}\n耗时:%{time_total}s\n" -o /dev/null -s https://example.com
在这个例子中:
\n
表示换行。%{http_code}
会被替换为HTTP响应的状态码。%{time_total}
会被替换为从发送请求到接收到最终一个字节的时间总和(以秒为单位)。-o /dev/null
表示将下载的内容丢弃,不输出到终端。-s
或--silent
选项表示静默模式,不显示进度信息等,默认情况下curl会显示这些信息。
通过定制这个格式字符串,你可以让curl输出更多关于请求的详细统计信息,这对于调试和性能分析非常有用。
curl 发送 post 请求
当你需要使用curl
命令发送一个POST请求,并且需要指定自定义的请求头和请求体时,可以按照以下格式构造命令:
示例1:发送JSON格式的数据
如果想发送JSON格式的数据作为请求体,并且添加特定的请求头,比如Content-Type
设置为application/json
,可以这样做:
curl -i -H "Content-Type: application/json" -X POST -d '{"key1":"value1", "key2":"value2"}' http://example.com/api/endpoint
在这个例子中:
-i
参数表示输出HTTP响应头信息。-H "Content-Type: application/json"
添加了一个请求头,指定内容类型为JSON。-X POST
指定了请求方法为POST。-d '{"key1":"value1", "key2":"value2"}'
指定了请求体内容为JSON格式的数据。
示例2:发送表单数据
如果你需要发送表单数据作为请求体,并且指定Content-Type
为application/x-www-form-urlencoded
,命令如下:
curl -i -H "Content-Type: application/x-www-form-urlencoded" -X POST -d 'field1=value1&field2=value2' http://example.com/submit
这里:
-d 'field1=value1&field2=value2'
指定了请求体内容为URL编码的表单数据。
请根据实际需求替换http://example.com/api/endpoint
和请求体中的具体内容。
curl 发送GET 请求,携带请求头
下面是一个简单的 curl
GET 请求的基本示例,这个请求没有额外的请求头,直接获取一个URL的内容:
curl http://example.com
如果你想获取一个URL并查看响应的头部信息,可以使用 -I
或 -head
选项:
curl -I http://example.com
如果需要向GET请求添加请求头,例如添加用户代理字符串和接受语言,可以这样做:
curl -H "User-Agent: MyCustomUserAgent/1.0" -H "Accept-Language: en-US,en;q=0.9" http://example.com
这里,-H
用于添加自定义请求头,第一个是设置用户代理字符串,第二个是告诉服务器客户端优先接受英语内容。
记得将 http://example.com
替换成你实际想要请求的URL。
携带部分参数
实下面是一个示例,展示如何使用curl
命令发送一个带有自定义请求头的GET请求:
curl -i -H "Authorization: Bearer your-token-here" "http://example.com/api/resource?param1=value1¶m2=value2"
在这个例子中:
-i
参数让curl
输出HTTP响应头信息,有助于调试。-H "Authorization: Bearer your-token-here"
添加了一个自定义请求头,这里示例为Bearer令牌认证。"http://example.com/api/resource?param1=value1¶m2=value2"
是请求的URL,其中param1=value1¶m2=value2
是通过查询字符串传递的参数。
添加多个请求头
在使用 curl
命令时,如果需要添加多个请求头,你可以通过多次使用 -H
或 --header
选项来实现。每个 -H
后面跟一个请求头字段及其值,格式为 Header-Name: Header-Value
。下面是一个示例,展示如何添加多个请求头到一个 curl
GET 请求中:
curl -i -H "Authorization: Bearer your-token" -H "Accept: application/json" -H "Custom-Header: CustomValue" "http://example.com/api/data"
在这个示例中:
-H "Authorization: Bearer your-token"
添加了用于认证的授权头。-H "Accept: application/json"
指定了客户端愿意接受的响应内容类型。-H "Custom-Header: CustomValue"
是一个自定义请求头,你可以根据需要替换为任何自定义的头部名称和值。"http://example.com/api/data"
是目标URL。
同样的规则也适用于 POST
、PUT
等其他HTTP方法,只需将 -X
选项用于指定请求方法,并根据需要添加 -d
或 --data
选项来指定请求体。
更多推荐
所有评论(0)