Shell发送POST请求

本文分享了使用CronTab结合curl命令,成功实现了对特定POST接口的定时调用经验。详细展示了如何设置HTTP头部,定义请求体,并通过curl参数指定目标URL,完成对远程服务的周期性触发。
有些场景用crontab跑定时任务,今天有一个需求调用的接口,接收的请求形式是POST的,纠结了一段时间,终于搞出来了

curl -i -X POST -H "'Content-type':'application/json'" -d '{"zuultoken":"abc","currentDate":"2018-11-13 11:46:18"}' http://msa.aubergine.cc/zsq-platform/customer/movement/v3/delateOverdueData

Shell脚本中发送POST请求通常可以使用`curl`或`wget`命令实现。这两种工具都支持向服务器发送数据,并且能够处理常见的HTTP方法,包括POST。 ### 使用 `curl` 发送 POST 请求 `curl` 是一个功能强大的命令行工具,支持多种协议(包括HTTP、HTTPS等),并且能够发送POST请求并携带数据。以下是一些常见的使用示例: #### 发送简单的表单数据 可以使用 `-d` 参数来指定要发送的数据: ```bash curl -X POST -d "param1=value1&param2=value2" http://example.com/api ``` 上述命令中,`-X POST` 指定请求方法为POST,`-d` 后跟的是要发送的数据。默认情况下,`curl` 会将数据以 `application/x-www-form-urlencoded` 的格式发送。 #### 发送 JSON 数据 如果需要发送JSON格式的数据,需要额外指定 `Content-Type` 请求头: ```bash curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' http://example.com/api ``` 这里 `-H` 用于添加自定义的HTTP头,指定了发送的内容类型为JSON。 #### 发送文件内容作为POST数据 还可以将文件内容作为POST请求的正文发送: ```bash curl -X POST -d @filename.txt http://example.com/upload ``` ### 使用 `wget` 发送 POST 请求 `wget` 是另一个常用的命令行下载工具,它也支持发送POST请求,但功能不如 `curl` 灵活。 #### 发送表单数据 可以使用 `--post-data` 参数来发送POST请求: ```bash wget --post-data "param1=value1&param2=value2" http://example.com/api ``` 同样,`wget` 会将数据以 `application/x-www-form-urlencoded` 格式发送。 #### 发送文件内容 如果需要发送文件内容,可以使用 `--post-file` 参数: ```bash wget --post-file=filename.txt http://example.com/upload ``` ### 注意事项 - 如果目标URL使用HTTPS,建议在命令中添加 `-k`(忽略SSL证书验证)或确保服务器的证书是可信的。 - 在脚本中使用时,建议将 `curl` 或 `wget` 的输出重定向到文件或使用 `-s` 参数静默执行,以避免不必要的输出干扰。 ### 示例脚本 下面是一个使用 `curl` 发送JSON数据的完整Shell脚本示例: ```bash #!/bin/bash url="http://example.com/api" data='{"username":"admin","password":"secret"}' response=$(curl -s -X POST -H "Content-Type: application/json" -d "$data" "$url") echo "Response: $response" ``` 该脚本定义了目标URL和要发送的数据,使用 `curl` 发送POST请求,并将响应结果存储在变量中以便后续处理。 ### 总结 无论是 `curl` 还是 `wget`,都可以在Shell脚本中用于发送POST请求。`curl` 提供了更丰富的功能和更高的灵活性,因此在大多数情况下是首选工具。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值