编码参数在Node.js中使用请求模块

我正尝试使用request模块使用PasteBin API创建一个新的粘贴,如下所示:

var request = require("request");
request({
    url : "http://pastebin.com/api/api_post.php",
    method : "POST",
    qs : {
        "api_dev_key" : MY_DEV_KEY,
        "api_option" : "paste",
        "api_paste_code" : "random text"
    }
},function(err,res,body){
    ...
});  

我的理解是,由于方法是POST并提供查询字符串参数,所以qs对象中的值将作为key=value对存储在主体中。 (参考:如何在HTTP POST请求中发送参数?)

但是,我找回了一个Bad API request, invalid api_option来自PasteBin的api_option Bad API request, invalid api_option 。 所以我curl了我的终端的请求,如下所示:

curl -X POST "http://pastebin.com/api/api_post.php" -d "api_dev_key=[MY_DEV_KEY]&api_option=paste&api_paste_code=some+random+text"  

这工作。

所以这导致两个问题:

  • 在发出POST请求并提供qs时,参数的确切发送方式是什么?
  • 如何仅使用request模块发送URL编码的主体?

  • 重命名qs键以在对象中formqs键用于指定URL末尾的查询字符串(例如,对于GET请求)。 form键用于指定表单URL编码的请求主体(例如,用于POST请求)。

    链接地址: http://www.djcxy.com/p/41335.html

    上一篇: encoded parameters in Node.js using request module

    下一篇: Spring controller not accepting application/json