[英]Send a POST request using Node.js
我認為使用NPM的模塊之一應該很容易,但是我嘗試了兩種不同的模塊,而且據我所知,它們都發送了沒有附加標簽的URL。
網址是: https : //safebooru.org/index.php?page = dapi&s = post&q = index ,需要發送的是pid,limit和tags。
但是,我一直回想的是結果,就像我只發送了' https://safebooru.org/index.php?page=dapi&s=post&q=index '
而不是說
' https://safebooru.org/index.php?page=dapi&s=post&q=index&pid=1&limit=10&tags=brown_hair '
請。 是否有一個模塊可以按預期發送此dang請求,而不僅僅是提供的基本URL?
我嘗試過的模塊是“請求”和“超級代理”,這是通過關於stackoverflow的類似問題導致的。
const rp = require("request")
const sa = require("superagent");
class SafebooruGetter {
constructor(data){
//none
}
get(limit, page, tags, callback){
var results;
sa.post('https://safebooru.org/index.php?page=dapi&s=post&q=index')
.send({limit: limit, pid: page, tags: tags})
.end(function(err, res){
if(err)
console.log(err);
else
callback(res);
});
}
get2(limit, page, tags){
var options = {
method: 'POST',
url: 'https://safebooru.org/index.php?page=dapi&s=post&q=index',
form: {
"limit": limit,
"pid": page,
"tags": tags,
},
headers: {
'User-Agent': 'Super Agent/0.0.1',
'Content-Type': 'application/x-www-form-urlencoded'
}
//json: true
};
//console.log(rp(options));
// return rp(options).then((data) => { return (data)});
return rp(options, function(error, response, body){
if(!error && response.statusCode == 200){
console.log(body);
return body;
}
});
}
}
您正在以此形式將參數作為表單數據發送,
form: {
"limit": limit,
"pid": page,
"tags": tags,
},
但您希望它會像這樣的網址一樣作為查詢參數出現,
https://safebooru.org/index.php?page=dapi&s=post&q=index&pid=1&limit=10&tags=brown_hair
那不可能。
如果您只希望將其作為查詢參數發送,則可以這樣發送,
get2(limit, page, tags){
var options = {
method: 'POST',
url: 'https://safebooru.org/index.php?page=dapi&s=post&q=index&pid='+page+'&limit='+limit+'&tags='+tags,
headers: {
'User-Agent': 'Super Agent/0.0.1',
'Content-Type': 'application/x-www-form-urlencoded'
}
//json: true
};
//console.log(rp(options));
// return rp(options).then((data) => { return (data)});
return rp(options, function(error, response, body){
if(!error && response.statusCode == 200){
console.log(body);
return body;
}
});
}
另一方面,僅在節點中將其作為查詢參數,
var limit = req.query.limit
var pid = req.query.pid
var tags = req.query.tags
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.