Я пытаюсь использовать request.js
library для загрузки файла на box.com с помощью request.post.
Я постоянно получаю в ответ код возврата 400 и пустое тело. Не знаю, как найти фактическую ошибку, которую видит окно. Аргумент err
обратного вызова имеет значение null, поэтому есть ответ от box.com, но с кодом состояния 400 и пустым телом.
К вашему сведению, загрузка прошла успешно с использованием curl, поэтому токен аутентификации и т. Д. В порядке. Я указал функцию ниже на http://echo.200please.com ', и кажется, что запрос HTTP POST I отправляю в порядке. Как мне узнать, какую ошибку видит ящик?
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 ...>