I am trying to create a new paste using the PasteBin API with request
module like so:
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){
...
});
My understanding is that since the method is POST
and querystring parameters are provided, the values in qs
object will be stored as key=value
pairs in the body. (Ref: How are parameters sent in an HTTP POST request?)
However, I get back a Bad API request, invalid api_option
from PasteBin. So I curl
ed the request from my terminal like so:
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"
and this worked.
So this leads to two questions:
- How exactly are the parameters sent when a
POST
request is made andqs
is provided? - How do I send URL-encoded body using just the
request
module?