Я должен реализовать следующий рабочий процесс:
Сделайте запрос №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 не является функцией
Переменная ManagedObject является строкой. В настоящее время я копирую его значение из успешного запроса почтальона, чтобы избежать ошибок в процессе манипуляции. Случайный токен в заголовке Content-Type совпадает с маркером в строке ManagedObject. Таким образом, данные идентичны тем, которые я использую в запросе почтальона.
Я подозреваю, что ошибка связана с тем, как я отправляю данные, но мне трудно понять это. Я читал об этой ошибке, и кажется, что она генерируется, когда объект передается в formData, но я отправляю строку, поэтому не понимаю, почему это происходит.