2016-12-18 4 views
0

이것은 NPM에서 모듈 중 하나를 사용하여 쉽게 작성해야한다고 생각합니다.하지만 두 가지 다른 모듈을 시도했으며 두 태그 모두 URL없이 태그를 추가하지 않고 보내야합니다. 나는 말할 수있다.Node.js를 사용하여 POST 요청을 보내십시오.

URL은 : https://safebooru.org/index.php?page=dapi&s=post&q=index 이며 보내는 데 필요한 것은 pid, 제한 및 태그입니다.

난 그냥 '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'

하시기 바랍니다. 제공되는 기본 URL뿐만 아니라 의도 된대로이 dang 요청을 보낼 모듈이 있습니까?

내가 시도한 모듈은 stackoverflow에서 비슷한 질문을 통해 유도 된 '요청'과 'superagent'입니다. 당신이에서 폼 데이터와 같은 매개 변수를 보내는

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; 
      } 
     }); 
    } 
} 

답변

2

,

form: { 
      "limit": limit, 
      "pid": page, 
      "tags": tags, 
     }, 

그러나이 같은 URL 쿼리 매개 변수로 와서 그것을 기대하고,

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 

희망이 아니라 도움이됩니다.

+0

그래, 고마워! –

관련 문제