我一直试图在Node.js中将粘贴发布到Pastebin,但看起来我做错了。
我收到了错误的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')
上设置编码,因为Pastebin API提到POST必须是UTF-8编码的。我一遍又一遍地重写了这个东西,并多次重新查阅Node HTTP文档。
我很确定我在这里完全错过了一些东西,因为我不知道这会如何失败。有没有人知道我做错了什么?
答案 0 :(得分:2)
您创建的内容不是格式正确的multipart/form-data
请求;它看起来更像是application/x-www-form-urlencoded
请求。从我所说的关于pastebin的API(我从未实际使用过它)开始,后者就是你真正想要的,所以尝试将Content-Type
更改为它。
答案 1 :(得分:0)