node.js - RP - 发布表单数据未正确传递给服务
问题描述
我需要用formdata传递文件,用java编写的服务器应该收到如下
公共响应 uploadFileWithMetadata(ObjectMetadata objectMetadata, MultipartBody multipartBody) {}
下面是客户端代码,我正在传递它作为 objectMetadata 作为 null 发送,multipartBody 数组有 2 个值,一个带有文件,另一个带有 objectMetadata,并且服务不接受作为有效输入。在服务器端接收到的 ObjectMetadata 应该是application/json,我在 formdata.xml 中设置了它。但这是作为文本/纯文本接收的,我怀疑这会导致问题
var options = {
method: 'POST',
uri: url,
formData: {
objectMetadata: {value: JSON.stringify(inputToPass),options:{'Content-Type': 'application/json'}},
file1: fs.createReadStream('/Users/mohansee/Desktop/Node_drekar_setup.docx')
}
};
rp(options)
.then(function (body) {
console.log('inside success'); console.log(body)
}) .catch(function (err) {
console.log('inside error');
console.log(err);
});
请检查并告知我是否在数据部分缺少需要作为单独参数传递的内容
解决方案
更改 formData 并添加标题解决了问题
formData: {
objectMetadata: {
value: inputToPass,
options: {
contentType: 'application/json'
}
},
file1: {
value: fs.createReadStream('Node_drekar_setup.docx'),
options: {
contentType: 'multipart/form-data'
}
}
}
推荐阅读
- python - 绘制列表索引的子集
- r - 如何在 Rmarkdown 中创建这个“词汇表”或“附录”?
- php - 必须通过 localhost 运行的 Web 应用程序是否需要安全性?
- python - 添加项目后如何保持Tkinter帧大小不变
- java - 如何在queryDsl(jpa + mockito)中模拟连接?
- html - Blogger 的通用背景颜色代码
- elasticsearch - Elasticsearch ILM 索引数据没有移动/迁移
- flutter - 有没有办法增加 Flutter switch 中轨道的高度?
- python - Selenium python代码单击交互式地图上的按钮以进行网络抓取不起作用
- android - 如何在 Android Studio 中重置模拟器大小