【Postman】测试 Post 请求时传递数据失败 & 常见传参方式

【Postman】测试 Post 请求时传递数据失败 & 常见传参方式近期尝试使用nod.js+vue开发一个小项目。第一次使用postman测试,遇到POST请求数据发送不过去的问题,做一个记录。JS部分代码//用户注册接口router.post(‘/register’,function(req,res,next){ //验证 if(1===1){ //console.log(req.body);…

近期尝试使用 nod.js + vue 开发一个小项目。
第一次使用 postman 测试,遇到 POST 请求数据发送不过去的问题,做一个记录。

JS 部分代码

//用户注册接口
router.post('/register', function (req, res, next) { 
   
	  //验证
	  if (1===1) { 
   
	    //console.log(req.body);
	    res.json({ 
   status: 1, message: '用户名不能为空' + req.body.username});
	  }
});

Postman测试

由于是第一次使用,开始测试过几个 GET 请求,一切测试正常。
测试 POST 请求时,只是简单的将请求类型改为了 “POST”。如图:

img1

发现传递到请求中的 username 值为 undefined。
也就是说传值失败了 …

后来研究了半天,发现了 URL 的奇怪之处。
POST 请求的参数不是不应该出现在 URL 中么?

补充一下: 之前记录这篇文章时对 POST 传参方式,仅限于日常项目中所见,故存在一点误解,后来了解过一点这方面知识之后,反而忘记了这篇文章,直到最近翻看到时才发现,所以做一点补充与更正,如之前有误导各位读者,敬请原谅。

此处需要更正一点:

POST 请求的参数并非不能出现在 URL 中,仅仅是因为我们经常将其放在 body 中传输。

实际上,不论是 GET 请求还是 POST 请求,传参的方式都既可以放在 url 中也可以放在 body 中

只不过大多数 POST 请求的参数通过 body 传递参数,也有少部分 POST 请求通过 url 传递参数,其能否传参成功还取决于后台代码对于参数的接收要求,如 Java 中的 @RequestParam 和 @RequestBody 在这里就分别意味着从 url 中取参和从 body 中取参;同样,C# 中也有 FromUrl 和 FromBody 来标记接收参数的方式。

另外,有一点不同的是 GET 请求,常见的 GET 请求 99% 都是通过 URL 传参的,但并没有规定 GET 请求不可以通过 body 传参,只能说 GET 请求通过 body 传参的方式是不被推荐的,以至于市面上部分框架和软件并不支持 GET 请求通过 body 方式传参(也可能暂时不支持,后期会支持),比如著名的接口测试工具 Postman 的上一个版本(Postman 最新版本已经支持,但上个版本是不支持的),OkHttpClient 框架(java.lang.IllegalArgumentException: method GET must not have a request body) ,当然也有很多框架和软件是支持的,比如典型的 Spring 框架等。

正因为如此,为了保证代码的稳定性、兼容性和可移植性,我们目前强烈建议除非特殊需求特殊场景下,尽量避免 GET 请求通过 body 方式传参的方式。

于是,考虑到可能是只修改了 POST 的 URL 请求类型,而没有修改传参方式。

发现,Postman 还提供了很多可选项的。

img2

Params:参数。会直接出现在 url 中,一般为 GET 请求的参数。
Authorization:认证。当 HTTP 请求目标端设置了访问权限过滤或者请求拦截时需要配置这里。
Headers:请求头信息。传递客户端的一些信息。这里的 Content-Type 与后面 body 的类型相关。
Body:请求体。分表单提交、文件提交、JSON提交等多种方式

form-data:表单提交。相当于 html 的 form 标签中 multipart/form-data。可以上传文件、键值对等
x-www-form-urlencoded:表单提交。相当于 html 中 form 标签中 application/x-www-from-urlencoded。上传表单时会自动转换为键值对提交。
raw:文本提交。可以选择 XML、JSON、TEXT、HTML 等。
binary:二进制文件提交。通常用来上传文件、图片等。

img4

今天的文章【Postman】测试 Post 请求时传递数据失败 & 常见传参方式分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/27812.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注