为了将我的node.js模块与另一台服务器连接,我使用了'request-promise'图书馆。当我想发布一些看起来像这样的东西时:
rp.({
method: 'POST',
headers:{
'Content-Type': 'text/plain',
'Authorization': ''
},
uri: 'https://myendpoint.com',
body:{
name: 'here is my a name',
code: 'here is my code',
location: 'here is my location'
}
}).then(...)
但是当我尝试使用此功能时,我会收到如下错误消息:
RequestError: Error: Argument, error, options.body.
TypeError: First argument must be a string or Buffer
我在身体中的所有论据都是字符串。我也对邮递员尝试了相同的方法,这对我有用。那么我做错了什么?
答案 0 :(得分:1)
或者,您可以先JSON对对象进行字符串化,然后将其传递给body参数,而无需将json参数设置为true:
const myObject = {
name: 'here is my a name',
code: 'here is my code',
location: 'here is my location'
};
const stringifiedObject = JSON.stringify(myObject);
rp.({
method: 'POST',
headers:{
'Content-Type': 'text/plain',
'Authorization': ''
},
uri: 'https://myendpoint.com',
body: stringifiedObject
}).then(...)
答案 1 :(得分:0)
将数据POST到JSON REST API
将
option.body
设置为您的数据,将json: true
设置为将身体编码为 JSON。
var options = {
method: 'POST',
uri: 'http://api.posttestserver.com/post',
body: {
some: 'payload'
},
json: true // Automatically stringifies the body to JSON
};
来自:https://github.com/request/request-promise#post-data-to-a-json-rest-api