curl命令行发送POST!GET请求


背景

curl 命令是一个利用 URL 规则在命令行下工作的文件传输工具。使用一种受支持的协议,从远程服务器传输数据,或将数据传输到远程服务器。默认情况下,已安装在 macOS 和大多数 Linux 发行版上。curl 支持包括 HTTP、HTTPS、ftp 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。在进行 web 后台程序开发测试过程中,常常会需要发送 url 进行测试,使用 curl 可以方便地模拟出符合需求的 url 命令。

1.curl 发送 GET 请求:

#语法格式
curl protocol://address:port/url?args

#示例:
curl http://127.0.0.1:8080/login?admin&passwd=12345678  # 带参数请求,参数用&连接

2.curl 发送 POST 请求:

#语法格式:
curl -X POST [options] [URL]

# 使用该-F选项时,curl使用的默认Content-Type是“multipart/form-data”,以key=value配对形式
curl -X POST -F 'name=Jason' -F 'email=jason@example.com' http://127.0.0.1:8000/login

# 使用-d选项,可以使用&符号对发送数据进行合并
curl -X POST -d 'name=Jason&email=jason@example.com' http://127.0.0.1:8000/login

# 使用-H选项,指定Content-Type为application/json发送JSON对象
curl -X POST -H "Content-Type:application/json"  -d '{"user": "admin", "passwd":"12345678"}' http://127.0.0.1:8000/login  # 通过-d指定json data内容

# 文件上传,需在文件位置之前添加@符号
curl -X POST -F 'image=@/home/user/Pictures/wallpaper.jpg' http://example.com/upload

3.curl 发送请求使用变量

get 请求:

appToken="AT_Lfdi5s7WWu"
time=`date +%Y%m%d%H%M`
content="gitee构建成功$time" #content字段的的字符长度限制为10 个
uid="UID_43224fdssdssds"
echo $content

curl "https://wxpusher.zjiecode.com/api/send/message/?appToken=$appToken&uid=$uid&content=$content"

post 请求默认是:Content-Type:application/x-www-form-urlencoded

appKey="TKtXLPUuGkfaRHA"
appSecret="aArwoGW9dYXBGL79oR8Ns3ZXCkPcGFdb"
suffurl="v1/gghq/launch"
time=`date +%s`
sign=`java -Xbootclasspath/a:/home/webuser/gogoal_platform/ggopenapi/lib/snakeyaml.jar -jar ./ggsign/ggsign.jar  "$appKey" "$appSecret" "$time" "$suffurl"`
#echo "$sign"

curl -X POST -d "app_key=$appKey&time_stamp=1512612452&sign=U7ETnXEaPUu1jNMq4jKf00fiGSM%3D" http://ggservice.sandbox.gofund.com.cn/v1/gghq/launch

post 请求采用 json:Content-Type:application/json

appToken="AT_xxxxx"
verifyPay=false #是否验证订阅时间,true表示只推送给付费订阅用户,false表示推送的时候,不验证付费,不验证用户订阅到期时间,用户订阅过期了,也能收到。
contentType=1 #消息摘要,显示在微信聊天页面或者模版消息卡片上,限制长度100,可以不传,不传默认截取content前面的内容。
topicIds=["UID_muONkLQuN9FOvsjC3OBBaSo0gTiq"]
uids=["UID_muONkLQuN9FOvsjC3OBBaSo0gTiq"]
time=`date +%Y%m%d%H%M`
content="gitee构建成功$time"
summary="gitee构建成功$time"
url="kkkkk"
echo $content

curl -H "Content-type: application/json" -X POST -d  {"appToken":"$appToken","verifyPay":"$verifyPay","contentType":"$contentType","topicIds":"$topicIds","uids":"$uids","content":"$content","summary":"$summary","url":"$url"} https://wxpusher.zjiecode.com/api/send/message
appToken="AT_XXXXXX"
verifyPay=false
contentType=1
topicIds=["UID_muONkLQuN9FOvsjC3OBBaSo0gTiq"]
uids=["UID_muONkLQuN9FOvsjC3OBBaSo0gTiq"]
time=`date +%Y%m%d%H%M`
content="$time"
summary="$time"
url="wwww"
echo $content

curl -X POST -H "Content-Type: application/json" -d '{"appToken":"'$appToken'","verifyPay":"'$verifyPay'","contentType":"'$contentType'","topicIds":"'$topicIds'","uids":"'$uids'","content":"'$content'","summary":"'$summary'","url":"'$url'"}' https://wxpusher.zjiecode.com/api/send/message

方法一:

uuid = "dadfahfafa"

curl -X POST -H "Content-Type: application/json" -d '{"field":"data","uuid":"'$uuid'"}'  https://example.com

方法二:

uuid = "dadfahfafa"

curl -X POST -H "Content-Type: application/json" -d "{\"field\":\"data\",\"uuid\":\"$uuid\"}"  https://example.com

为了避免要添加大量的转义字符,这里同样推荐使用第一种方法


文章作者:   leader755
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 leader755 !
评论
 上一篇
uniapp开发 uniapp开发
1.开发方式1.Dcloud 提供的 HBuildex 来开发2.使用脚手架快速搭建和开发a>全局安装npm i -g @vue/cli b>创建项目1》vue create -p dcloudio/uni-preset-vue
2022-10-17
下一篇 
Parallels Desktop 18 for Mac破解版 Parallels Desktop 18 for Mac破解版
1.parallels desktop 18 破解版安装教程:链接下载:链接:https://cloud.hiksemi.cn/#share-UO0HOE,提取码:3149 先安装包内的 pd18 关闭更新和发送体验报告,退出 para
2022-09-24
  目录