【问题标题】:Using Pastebin API in Node.js在 Node.js 中使用 Pastebin API
【发布时间】:2012-07-07 14:13:36
【问题描述】:

我一直在尝试在 Node.js 中将粘贴发布到 Pastebin,但似乎我做错了。

我收到 Bad API request, invalid api_option,但是我显然将 api_option 设置为 paste,就像文档要求的那样为。

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 存在并设置为 paste

现在,我一直在寻找可能的原因。我还尝试在写入 req.write(query, 'utf8') 上设置编码,因为 Pastebin API 提到 POST 必须是 UTF-8 编码的。我一遍又一遍地重写,并多次重新查阅 Node HTTP 文档。

我很确定我在这里完全错过了一些东西,因为我看不出这怎么会失败。有人知道我做错了什么吗?

【问题讨论】:

    标签: api http node.js pastebin


    【解决方案1】:

    它不能直接回答你的问题,但也许它可以帮助......

    你尝试过使用请求模块吗?

    你的例子会更容易阅读,你可能会发现问题......

    mikeal/request

    【讨论】:

    • 虽然这并没有解决我的问题,但该模块很有趣,我记下了。
    【解决方案2】:

    您创建的不是格式正确的multipart/form-data 请求;它看起来更像是一个application/x-www-form-urlencoded 请求。据我所知,pastebin 的 API(我从未真正使用过)后者是您真正想要的,因此请尝试将 Content-Type 更改为它。

    【讨论】:

    • 就像我说的,这是我完全错过的东西。谢谢
    猜你喜欢
    • 2011-11-26
    • 1970-01-01
    • 2017-12-02
    • 2021-08-13
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多