我一直试图贴一个粘贴到巴斯丁在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')上设置编码,因为Pastebin提到POST必须是UTF-8编码的。我一遍又一遍地重写了这个东西,并多次重新查阅了Node文档。
我很肯定我完全漏掉了一些东西,因为我不知道这怎么会失败。有人知道我做错了什么吗?
发布于 2012-07-08 02:12:39
您所创建的不是一个格式正确的multipart/form-data请求;它更像是一个application/x-www-form-urlencoded请求。从我所知道的关于pastebin的API (我从未实际使用过它)中可以看出,后者才是您真正想要的,所以请尝试将Content-Type更改为它。
发布于 2012-07-07 22:18:19
https://stackoverflow.com/questions/11373727
复制相似问题