gpt4 book ai didi

node.js - NodeJS - ERR_INVALID_ARG_TYPE 向远程主机发出 HTTP 请求时抛出错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:43:49 24 4
gpt4 key购买 nike

最近,我在尝试使用 NodeJS 和 request-promise 发出请求时遇到了问题.

以下代码嵌套在用于文件上传的 multer 调用中(使用嵌套函数/集群。

    const options = {
method: 'POST',
uri: 'URL of your choice',
body: {
//Body of the request
},
// json: true,
headers: {
// 'Content-Type': 'application/x-www-form-urlencoded',
},
}

request(options)
.then(function (response) {
console.log('Response: ', response);

})
.catch(function (err) {
console.log('Error: ', err);
});

在使用当前请求时,如果没有“json: true”属性(已注释掉),我收到以下错误:

TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be one of type string or Buffer. Received type object
at write_ (_http_outgoing.js:603:11)
at ClientRequest.write (_http_outgoing.js:575:10)
at Request.write (PATH/node_modules/request/request.js:1500:27)
at end (PATH/node_modules/request/request.js:549:18)
at Immediate.<anonymous> (PATH/node_modules/request/request.js:578:7)
at runCallback (timers.js:696:18)
at tryOnImmediate (timers.js:667:5)
at processImmediate (timers.js:649:5)
at process.topLevelDomainCallback (domain.js:121:23)

当我打开“json: true”选项时,问题不会发生,但远程 API 返回错误,因为它不能很好地处理 JSON 请求/它们添加的大括号。

关于解决这个问题有什么想法吗?

谢谢。

最佳答案

解决了!
由于远程主机不能很好地处理 JSON,并且需要发送“普通”POST 请求,因此我再次查看了 request-promise 的文档。通过将 body{} 更改为 formData{},并注释掉 json: true,问题就解决了。

const options = {
method: 'POST',
uri: 'URL of your choice',
formData: {
//Request's data
},
}

request(options)
.then(function (response) {
console.log('Response: ', response);

})
.catch(function (err) {
console.log('Error: ', err);
});

关于node.js - NodeJS - ERR_INVALID_ARG_TYPE 向远程主机发出 HTTP 请求时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52150043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com