0

我对 http 请求及其在请求链接时的工作方式感到困惑。

所以我知道 GET 请求会向 ?username=ABC123&password=TTT 之类的 url 添加参数,而 POST 只是将数据发送到服务器,但这就是我在阅读教程时得到的全部。例如,我将如何发送请求并在身份验证后从 rapidgator 链接下载文件?(我是高级用户)。

链接到他们的 api 文档: https ://support.rapidgator.net/index.php?/Knowledgebase/Article/View/89/9/do-you-have-api

第一个响应返回一个像这样的响应对象,它给出了会话 id,这是我从中获取会话 id 的地方:

{
  "response": {
    "expire_date":1351526400,
    "traffic_left":0,
    "reset_in":11695
  },
  "response_status":200,
  "response_details":null
}

这是我的代码:

const rp = require('request-promise');
const url = 'http://rapidgator.net/api/user/login';
const opts = {
  uri: url,
  qs: {
    username: '**censored**',
    password: '**censored**',
  },
  headers: {
    'User-Agent': 'Request-Promise'
},
  json: true
}

rp(opts)
.then(( resp ) => {
  const sessionId = resp.session_id;
  const postOpts = {
    uri: 'http://rapidgator.net/api/user/info?sid=knf3pqpg3ldm05qnol0sn16326',
    method: 'POST',
    body: {
      session_id: sessionId
    },
    json: true
  }
  rp(postOpts)
  .then(res => {
    console.log(cyan(JSON.stringify(res, null, 2)));
  })
})
.catch(( err ) => {
  throw Error(err);
});

我是以错误的方式接近这个吗?如何继续从 rapidgator 下载链接?

4

0 回答 0