body參數 curl post_curl发送POST方法类型带body参数请求以及发送上传文件请求

本文介绍了如何使用curl模拟POST请求带body参数,以及如何进行文件上传。在模拟POST请求时,通过添加请求头`Content-Type: application/json`可以解决参数尾部出现“=”的问题。对于文件上传,使用`-F`参数,并确保包含“@”字符来指定文件路径。
摘要由CSDN通过智能技术生成

curl在实际中会被postman等替代,但是他仍然是一个快速的模拟http请求的工具,而且也有他不可替代的理由,使用简单,在命令行下就可以完成。

今天不是介绍如何使用curl模拟各种GET/POST/PUT/DELETE请求的,而是介绍如何模拟post请求带body参数,以及模拟上传文件。起因是笔者在一次使用curl模拟POST请求带body参数的时候,出现了一个问题,参数能够传给后台,但是后台接收的参数总是会在参数字符串后面增加一个“=”字符,这个令我很诧异,如是就想着研究一下,如何模拟一个POST类型带body参数的HTTP请求,并且参数不会被增加“=”号。

我们准备一个简单的服务端,提供两个接口,一个是保存save(@RequestBody String name)接口,打印name,并返回name,这个用来处理body参数的一个接口,方法签名是POST,另一个方法是upload(@RequestParam("file")MultipartFile file,HttpServletRequest request),用来测试文件上传的。

启动项目,我们测试第一个接口save(name),模拟带body参数:

curl -XPOST -d hello http://localhost:9090/save

我们需要添加请求头参数,修改Content-Type属性 -H "Content-Type: application/json"

模拟发送body参数请求成功,而且也解决了参数尾部会增加“=”的问题。

另外,除了直接在命令行里直接输入body参数之外,我们可以通过指定一个文件的内容作为参数body的内容,也是可以的,我们通过-T选项指定文件。

curl -XPOST -T body.txt http://localhost:9090/save

通过指定文件为body参数,就不用指定请求头参数了。

///\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

测试文件上传,curl提供一个-F参数选项用来做文件上传,但是-F参数的格式尤其需要注意,比如-F "file=@c:\Users\Administrator\Desktop\body.txt",其中参数中的“@”字符很关键,如果没有字符“@”我们的文件依旧无法上传。

错误的文件上传:

状态码400表示参数错误,失败信息显示请求所需的file不存在。

正确的文件上传:

总结一下就是,发送POST请求,可以通过指定请求头类型Content-Type来解决body参数尾部会增加“=”的问题。文件上传,我们使用-F选项,选项中的字符“@”是必须的,表示是文件位置前缀。

标签:body,文件,请求,发送,参数,curl,上传

来源: https://blog.csdn.net/feinifi/article/details/95968221

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值