我尝试使用request.js
库使用request.post将文件上传到box.com。
我一直在响应中获得400的返回码和一个空体。不确定如何获得框看到的实际错误。回调的err
参数为null,因此来自box.com的响应,但状态代码为400且为空体。
仅供参考,使用curl上传成功,因此身份验证令牌等都可以。 我将下面的函数指向http://echo.200please.com',似乎我发送的HTTP POST请求很好。 如何查看框中看到的错误?
request = require"request");
UploadFile = function(filename, callback) {
var formData = {
attributes: JSON.stringify( {
name: filename,
parent: { id: '' + 2764913765 }
}),
file: fs.createReadStream('./temp.bin')
}
var options = {
url: 'https://upload.box.com/api/2.0/files.content',
headers: { Authorization: 'Bearer ' + tokens.access_token},
formData: formData
}
request.post(options,
function(err, response, body) {
if (err) {
console.log('Error Uploading the file');
} else {
console.log('returned:' + body + JSON.stringify(response.headers))
}
});
如果我将URL更改为指向echo.200please.com,则我从echo.200please.com获得的响应如下所示,这似乎是文件上载请求的正确格式。
> POST / HTTP/1.0
Host: echo.200please.com
Connection: close
Content-Length: 1951
Authorization: Bearer bVPDzG8PgIVRNoqb5LOzD61h6NXhJ6h0
content-type: multipart/form-data; boundary=--------------------------799592280904953105406767
----------------------------799592280904953105406767
Content-Disposition: form-data; name="attributes"
{"name":"testchunkname.1","parent":{"id":"2764913765"}}
----------------------------799592280904953105406767
Content-Disposition: form-data; name="file"; filename="temp.bin"
Content-Type: application/octet-stream
<... file data ...>
答案 0 :(得分:0)
好的......我发现了这个bug :-)
它是网址中的拼写错误
在我的程序中,它设置为api/2.0/files.content
,而网址中的正确路径应为api/2.0/files/content