【发布时间】:2015-10-17 23:04:44
【问题描述】:
我正在尝试 create a new paste using the PasteBin API 和 request 模块,如下所示:
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对存储在body中。 (参考:How are parameters sent in an HTTP POST request?)
但是,我从 PasteBin 收到了 Bad API request, invalid api_option。所以我curled 来自我的终端的请求,如下所示:
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 编码的正文?
【问题讨论】:
标签: node.js request npm pastebin