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