curl如何发送json文件数据示例

在测试服务时,可能需要curl以post方式提交json数据。

如果数据比较复杂,可能需要保存数据为json文件,然后curl提交。

这里示例curl如何提交文件格式的json数据,所用示例参考和修改自网络资料。

1 直接提交

1.1 cat filepath辅助

准备一个JSON文件,先cat读取文件后作为curl --data的参数,进行发送curl请求。

$ curl --header "Content-Type: application/json" \

> --data "$(cat ~/Downloads/sample1.json)" \

> --trace-ascii trace-json-data-request.log \

> $server_endpoint

--trace-ascii 跟踪 curl 请求,以便于验证请求。

1.2 @filepath读取

除了使用 cat 命令,另一种方法是使用 @file 让 curl 读取文件内容。

$ curl --header "Content-Type: application/json" \

> --data "@~/Downloads/sample1.json" \

> --trace-ascii trace-json-data-request.log \

> $server_endpoint

trace-json-data-request.log 文件以确认数据已成功发送:

$ grep --max-count=1 --after-context=2 "Send data" trace-json-data-request.log

=> Send data, 65 bytes (0x41)

0000: {. "fruit": "Apple",. "size": "Large",. "color": "Red".

0040: }

2 先读取后提交

2.1 读取文件到变量

在Linux中,可以使用shell脚本的方式来读取文件内容到变量中。

有以下几种方法:

file.txt是要读取的文件名,file_content是保存文件内容的变量名

使用cat命令读取文件内容,并使用重定向符将输出结果赋值给变量

file_content=$(cat file.txt)

使用<符号将文件内容传递给命令,然后使用命令替换将结果赋值给变量:

file_content=$(<file.txt)

2.2 curl发送变量内容

变量内容直接作为--data的参数,进行发送curl请求。

curl --header "Content-Type: application/json" \

> --data "$file_content" \

> --trace-ascii trace-json-data-request.log \

> $server_endpoint

reference


使用cURL通过文件发送POST请求指南

https://www.baeldung-cn.com/curl-send-post-request-data-from-file

linux中怎么用shell读取文件内容到变量

https://www.yisu.com/ask/20187064.html

相关推荐
wusam4 小时前
计算机网络第二章习题解答
服务器·网络·计算机网络
EasyGBS4 小时前
国标监控PS流是什么?GB28181视频平台EasyGBS视频封装全链路讲解
服务器·音视频·gb28181
土星云SaturnCloud4 小时前
边缘计算 + AI 视频存管一体机:快递末端网点分拣提效与安全管控实战方案
服务器·人工智能·ai·边缘计算
wdfk_prog4 小时前
Wi-Fi Direct教程 02:从 wpa_cli main() 到 P2P_FIND——用源码注释追踪 CLI 控制命令发送
运维·服务器·网络·网络协议·ubuntu·p2p·wifi-direct
DD云验证5 小时前
DD云验证,免费网络验证系统
服务器·python·易语言·网络验证·卡密验证
沫璃染墨5 小时前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程
云计算练习生5 小时前
什么是上下文切换?进程切换时 CPU 到底在保存什么
linux·服务器·操作系统·进程切换
qetfw5 小时前
Debian 综合服务实训:Apache2、Samba、LDAP、vsftpd 与 OpenVPN
linux·服务器·debian
程序员-Benothing6 小时前
Linux系统时间管理:date、timedatectl、NTP、Chrony配置
linux·运维·服务器
迪康Defender6 小时前
终端安全实践:浅谈端点安全管理系统内置终端防火墙能力
运维·服务器·网络·经验分享·安全·php·终端安全管理