我对 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 下载链接?