【发布时间】:2019-11-09 12:22:19
【问题描述】:
我必须实现以下工作流程:
发出请求 1,获得 JSON 响应。操作此 JSON 对象,使其可用作第二个请求中的有效负载。提出第二个请求。
第一个请求成功执行。我得到了正确的 JSON 对象。操作部分也已完成并经过测试。
我设法为第二个请求创建了正确的邮递员集合。它使用 POST 方法,有几个标头,Content-type 是 multipart/form-data 并且来自请求 1 的有效负载作为 Raw 发送(在正文中,选项无,form-data 等......我选择 raw) .
我正在尝试实现第二个请求,但无论我尝试调整什么都会出错。以下是我的代码:
const manipulatedObject = await this._flattenPayload(payload);
const Request = require(request-promise);
const options = {
method: 'POST',
uri: 'https://second_request_url',
formData: {
file: {
value: manipulatedObject,
},
},
headers: {
Accept: 'application/json, text/plain, */*',
Connection: 'keep-alive',
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryxxxxxxxxxxxxxxxx', // this is generated dynamically and matches the value in the manipulatedObject
cookie: this.cachedCookie,
'X-XSRF-TOKEN': this.cachedToken,
},
};
Request(options)
.then((body) => {
return body;
})
.catch((error) => {
return error;
});
* 参数负载是第一个请求的响应。
我得到的错误是这样的:
message=source.on 不是函数,stack=TypeError: source.on 不是 一个函数
变量操作对象是一个字符串。目前我正在从成功的邮递员请求中复制它的值,以避免操作过程中的错误。 Content-Type 标头中的随机标记与操作对象字符串中的标记匹配。所以数据与我在邮递员请求中使用的数据相同。
我怀疑错误出在我发送数据的方式上,但我无法弄清楚。我已经阅读过这个错误,它似乎是在将对象传递给 formData 时生成的,但是我正在发送一个字符串,所以我不明白它为什么会发生。
【问题讨论】:
标签: node.js request-promise http-request-parameters