Chrome Postman 的form-data 和 raw 有什么区别
发布于 10 年前 作者 xinyuanyu 100249 次浏览 最后一次编辑是 8 年前

想问下PostMan里面,我POST数据的时候,使用form-data方式和直接使用raw方式有什么区别。

现在后台提供一个restAPI,现在发现使用raw方式传递json格式的数据是可以成功的, 但是转换层form方式就失败了

两种方式都添加了header : Content-Type: application/json

6 回复

raw方式使用的是纯字符串的数据上传方式,所以在POST之前,可能需要手工的把一些JSON格式的数据转换成字符串的(加两单引号)

Form-data的方式就是key-value的提交,数据其实是分割的

贴上一段使用Needle POST的代码:

needle = require(‘needle’); LOGIN_URL = ‘xxxxx’; var data = ‘{“username”: “username”,“password”: “password”}’; var options = {headers: { ‘Content-Type’: ‘application/json’ }}; needle.post(LOGIN_URL, data, options, function(err, resp) { console.log(resp); });

还是没太明白,求解

@xinyuanyu

其实bodyparser是可以处理的,注意

// for raw data
app.use(bodyParser.text({ type: 'text/*' }))

这样就可以通过req.text到内容了

Form-data 是键值对, 你只能通过postman提供的表单填写,

如果你的数据的某个键里面还有嵌套的对象,例如嵌套的好几层对象 那么就没有办法使用form-data 提交了, 只能使用raw 自己填写json字符串, 明白了吗?

回到顶部