Я пытаюсь загрузить файл с помощью модуля request
в Telegram
's Bot API. Тем не менее, я получаю ошибку 502 Gateway. Вот мой код:Загрузка файла узла заканчивается 502 Ошибка шлюза
var request = require("request");
var fs = require("fs");
fs.readFile("image.png",function(err,data){
var formdata = {};
formdata.chat_id = <chatid>;
formdata.photo = data;
if(err)
console.log(err);
request({
url : "https://api.telegram.org/bot<token>/sendPhoto",
method : "POST",
headers : {
"Content-Type" : "multipart/form-data"
},
formData : formdata
},function(err,res,body){
if(err)
console.log(err)
console.log(body);
})
});
Это правильный способ загрузить файл или я где-то ошибаюсь?
Работал! В чем разница между вашим кодом и моим? –
Для расширенных случаев вы можете получить доступ к самому объекту формы данных через r.form(). Это может быть изменено до тех пор, пока запрос не будет запущен в следующем цикле цикла событий. (Обратите внимание, что эта вызывающая форма() очистит установленные данные формы для этого запроса.) - cite from https://github.com/request/request#forms Основная идея - 'form()' очищает данные формы, и это использование устанавливает правильные заголовки (multipart/form-data, content-length, content-type и т. д.) , и он может распознавать и получать всю необходимую информацию из обычных типов потоков (fs.readStream, http.response) –