Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 理解HTTP请求——使用rapidgator进行身份验证——它是如何工作的?_Javascript_Request Promise - Fatal编程技术网

Javascript 理解HTTP请求——使用rapidgator进行身份验证——它是如何工作的?

Javascript 理解HTTP请求——使用rapidgator进行身份验证——它是如何工作的?,javascript,request-promise,Javascript,Request Promise,我对http请求及其在请求链接时的工作方式感到困惑 所以我知道GET请求会向URL添加参数,比如?username=ABC123&password=TTT,POST只会将数据发送到服务器,但这是我在阅读教程时得到的所有信息。例如,在验证后,我如何发送请求并从rapidgator链接下载文件?(我是高级用户) 链接到他们的api文档: 第一个响应返回一个响应对象,如下所示,该对象提供会话id,我从中获取会话id: { "response": { "expire_date":13515

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

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

链接到他们的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下载链接

你似乎已经走到一半了。从较高的层次来看,在该页面上,他们有一个
Get download url
示例,我认为这正是您想要的。基本上,您的第二个请求应该是指向
api/file/download
端点,而不是
api/user/info
。然后,对该文件的响应应该包含该文件的实际URL,然后您可以使用类似(我假设您正在节点上运行此操作)Thank you的方式发出第三个下载该文件的请求。我现在明白了,一切都好了!