言成言成啊 | Kit Chen's Blog

CURL使用总结

发布于2022-08-19 00:01:13,更新于2024-11-07 21:34:04,标签:curl  文章会持续修订,转载请注明来源地址:https://meethigher.top/blog

curl使用url上传和下载的客户端程序,c表示客户端的含义。

url参数,可以不加双引号。

但是如果碰到如&符号,就会自动截断,所以保险起见,加双引号。

一、快速使用

1.1 get

发送一个get请求

1
2
3
curl -X GET \
"https://meethigher.top/census/thread" \
-H "accept: */*"

1.2 post

发送一个post请求,请求体格式是json,具体请求体内容是分页。

1
2
3
4
5
curl -X POST \
"http://127.0.0.1:9090/doc/docPageQuery" \
-H "accept: */*" \
-H "Content-Type: application/json" \
-d "{ \"pageIndex\": 1, \"pageSize\": 20}"

二、细节

以下所有内容,通过curl --help都可以查看

curl支持简略写法,如curl -v

curl也支持全拼写法,如curl --verbose

多参数可以使用简略写法,如curl -vL

2.1 跟随重定向

访问我的http域名,会自动重定向到https域名。

curl默认是获取到的重定向前的内容,如果想要直接获取重定向后的内容,需要使用location

1
curl -L "http://meethigher.top"

或者全拼写法

1
curl --location "http://meethigher.top"

2.2 显示通信过程

verbose显示完整的请求过程

1
curl -v "http://meethigher.top"

或者全拼写法

1
curl --verbose "http://meethigher.top"

2.4 设置请求头

header表示设置请求头

1
curl -H "User-Agent: I am your father" "https://meethigher.top/census/head"

或者全拼写法

1
curl --header "User-Agent: I am your father" "https://meethigher.top/census/head"

如图,查看ua已经被修改

curl还提供了比header更精准的参数,基于header实现的,所以只要了解header即可。

2.5 切换请求方式

request表示设置请求方式

1
curl -X POST "http://127.0.0.1:9090/doc/downExcel"

或者全拼写法

1
curl --request POST "http://127.0.0.1:9090/doc/downExcel"

2.6 设置请求体

任意格式

data表示设置请求体

1
2
3
4
curl -X POST \
-H "Content-Type:application/json" \
-d "{ \"companyName\": \"\", \"pageIndex\": 1, \"pageSize\": 20}" \
"http://192.168.110.61:8030/ecity/admin/bikeAuth/pageQuery"

或者全拼写法

1
2
3
4
curl -X POST \
-H "Content-Type:application/json" \
--data "{ \"companyName\": \"\", \"pageIndex\": 1, \"pageSize\": 20}" \
"http://192.168.110.61:8030/ecity/admin/bikeAuth/pageQuery"

不管是json、form表单、拼参形式,都可以通过data,但是要注意请求头的Content-Type要配套

如果-d后面涉及编码问题时,比如xml,可以直接使用-d @文件,如

1
curl -X POST -H "Content-Type:application/xml" -d @test.txt "http://192.168.110.199:9999/xml/insert"

form-data格式

1
curl -X POST -F "pageIndex=1" -F "pageSize=20" -F "taskName=测试任务" "http://127.0.0.1:54187/task/pageQuery"

若需要上传文件

1
2
3
curl -X POST -F file=@doc.xlsx "http://127.0.0.1:9090/doc/excelImport"
# 批量上传
curl -X POST -F "file=@1.txt" -F file=@2.txt -F file=@3.txt -F file=@4.txt "http://192.168.110.199:8090/upload"

2.7 下载功能

output表示将控制台打印改为保存

1
curl -X GET -o doc.xlsx  "http://192.168.101.11:9090/doc/downExcel"

或者全拼写法

1
curl -X GET --output doc.xlsx  "http://192.168.101.11:9090/doc/downExcel"

2.8 上传功能

Multipart formposts - Everything curl

Uploads - Everything curl

下面举例multipart/form-data的上传形式

form表示采用form表单形式

1
2
3
curl -X POST -F file=@doc.xlsx "http://127.0.0.1:9090/doc/excelImport"
# 批量上传
curl -X POST -F file=@1.txt -F file=@2.txt -F file=@3.txt -F file=@4.txt "http://192.168.110.199:8090/upload"

或者全拼写法

1
curl -X POST --form file=@doc.xlsx "http://127.0.0.1:9090/doc/excelImport"

2.9 配置代理

临时全局代理

该代理的开启,按照我的习惯,依然是使用Qv2ray,参考Git配置代理

1.) windows

1
2
set http_proxy=10.0.0.1:1081
set https_proxy=10.0.0.1:1081

2.) linux

1
2
export http_proxy=10.0.0.1:1081
export https_proxy=10.0.0.1:1081

临时请求代理

只需要添加请求头-x即可

1
curl -x 10.0.0.1:1081 -o jvms.zip  "https://github.com/ystyle/jvms/releases/download/v2.1.1/jvms_v2.1.1_amd64.zip"

三、参考致谢

Command line options - Everything curl

curl网站开发指南 - 阮一峰的网络日志

curl 的用法指南 - 阮一峰的网络日志

发布:2022-08-19 00:01:13
修改:2024-11-07 21:34:04
链接:https://meethigher.top/blog/2022/curl/
标签:curl 
付款码 打赏 分享
Shift+Ctrl+1 可控制工具栏