Javascript Dropbox V2文件上载终点-无效内容类型-Dropbox cor s-hack
我正在尝试使用V2端点进行文件上载。我相信内容标题设置正确,但我一直收到这个错误。有人能帮忙吗Javascript Dropbox V2文件上载终点-无效内容类型-Dropbox cor s-hack,javascript,node.js,dropbox,dropbox-api,Javascript,Node.js,Dropbox,Dropbox Api,我正在尝试使用V2端点进行文件上载。我相信内容标题设置正确,但我一直收到这个错误。有人能帮忙吗 const request = require('request'); var fs = require('fs'); var apiArgs = '{ "path" : "/testfolder/Nespresso.zip", "mode" : "add", "autorename" : true, "mute" : false }' ; var formData = { 'data-b
const request = require('request');
var fs = require('fs');
var apiArgs = '{ "path" : "/testfolder/Nespresso.zip", "mode" : "add", "autorename" : true, "mute" : false }' ;
var formData = {
'data-binary': fs.createReadStream("F:\\Nespresso.zip")
};
const options = {
headers: {
'Authorization' : 'Bearer ############',
'Content-Type' : 'application/octet-stream',
'Dropbox-API-Arg': apiArgs
},
formData : formData
};
request.post('https://content.dropboxapi.com/2/files/upload', options, function(err, res, body) {
//let json = JSON.parse(body);
console.log(body);
if(res)
console.log(res.statusCode);
if(err)
console.log(err);
});
节点上出现错误:
调用API函数文件/上载时出错:错误的HTTP内容类型头:m
多部件/表格数据;边界=------298294176382492406791283
. 需要一个应用程序/八位字节流,文本/普通;字符集=dropbox cor
s-hack。
400不确定数据二进制文件是否为请求配置对象的有效formData属性。看见此外,Dropbox需要应用程序/八位字节流类型的数据,而不是您提供的多部分/表单数据。那么:
const request = require('request');
var fs = require('fs');
const options = {
url: 'https://content.dropboxapi.com/2/files/upload',
headers: {
'Authorization' : 'Bearer ############',
'Content-Type' : 'application/octet-stream',
'Dropbox-API-Arg': JSON.stringify({
'path' : '/package.json'
})
}
};
const uploadStream = request.post(options, function(err, res, body) {
//let json = JSON.parse(body);
console.log(body);
if(res)
console.log(res.statusCode);
if(err)
console.log(err);
});
fs.createReadStream('./package.json').pipe(uploadStream);
我希望这个答案能帮助您。没错,文件数据应该在请求正文中发送,但问题中的代码将其作为表单数据发送,导致请求将内容类型设置为multipart/form data。另一个选项是将文件数据放在body字段中,而不是选项中的formData。