Я пытался опубликовать вставку в Pastebin в Node.js, но, похоже, я делаю это неправильно.
Я получаю неверный запрос API, неверный параметр api_option, однако я явно устанавливаю для параметра api_option значение вставить, как того требует документация.
var http = require('http');
var qs = require('qs');
var query = qs.stringify({
api_option: 'paste',
api_dev_key: 'xxxxxxxxxxxx',
api_paste_code: 'Awesome paste content',
api_paste_name: 'Awesome paste name',
api_paste_private: 1,
api_paste_expire_date: '1D'
});
var req = http.request({
host: 'pastebin.com',
port: 80,
path: '/api/api_post.php',
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
'Content-Length': query.length
}
}, function(res) {
var data = '';
res.on('data', function(chunk) {
data += chunk;
});
res.on('end', function() {
console.log(data);
});
});
req.write(query);
req.end();
console.log(query)
подтверждает, что строка правильно закодирована и что api_option присутствует, и установлено значение вставить.
Теперь я вечно искал возможные причины. Я также попытался установить кодировку для записи req.write(query, 'utf8')
, потому что API Pastebin упоминает, что POST должен быть в кодировке UTF-8. Я переписывал это снова и снова и много раз пересматривал документацию Node HTTP.
Я почти уверен, что полностью что-то пропустил здесь, потому что я не понимаю, как это может потерпеть неудачу. Кто-нибудь знает, что я сделал не так?