【问题标题】:How to set raw body with request-promise-native如何使用 request-promise-native 设置原始正文
【发布时间】:2018-08-03 17:08:54
【问题描述】:

我在 node.js 上使用request-promise-native 模块。我正在调用的 API 需要标题中的键以及 Content-Type: Application/json。当使用邮递员进行测试时,我必须使用 Body > raw 来传递必要的参数。这工作得很好。

但是,当我尝试对请求库进行相同操作时,正文未正确提交。这是我尝试过的:

const request = require('request-promise-native')

let options = {
    method: 'POST',
    uri: 'https://api.com',
    headers: {
        'X-Api-Key': <key>,
        'Content-Type': 'Application/json'
    }
}

options.body = {
    key1: 'value1',
    key2: 'value2'
}

// and since the above didn't work also this:

options.form = {
    key1: 'value1',
    key2: 'value2'
}


request(options)
   .then(function(res){ /* do something */}

我确实得到了响应,但不是基于正文参数。如何复制“原始”身体?

【问题讨论】:

  • 嘿,你能把json: true 添加到那个options 对象并尝试一下吗?
  • 或者你可以试试,Content-Type: 'application/x-www-form-urlencoded' 看看它是否有效。
  • @AritraChakraborty 谢谢,这解决了问题。想要发布它作为答案?
  • @AritraChakraborty json: true 解决了它
  • 当然。发布它

标签: node.js request-promise


【解决方案1】:

request-promise-native 在内部使用request-promise,而request 又是request 的包装器。
request 有一个选项

json: true 

用于传递 json body 参数。你可以使用它。

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多