首页 > 解决方案 > Rapidgator API 直接下载链接错误

问题描述

伙计们,我目前正在研究文件托管高级链接生成器,基本上它将是一个网站,您可以从中获得 uptobox、rapidgator、uploaded.net 和其他文件托管网站的高级链接,而无需购买高级帐户。基本上,我们是代表用户购买本网站的账户,并以低价提供这项服务。因此,当我设置 Rapidgator 直接下载链接的 API 时,我能够获得该链接,但我得到的会话已经结束。我试图通过软件而不是通过手动编码来使用该 API,我正面临这个问题

所以我一直从 Tihs 站点获得 Rapidgator API 参考:- https://gist.github.com/Chak10/f097b77c32a9ce83d05ef3574a30367d

因此,我正在使用调试软件执行以下操作并且我得到了成功响应,但是当我在浏览器中打开该 URL 时,它显示会话 ID 失败。

所以这是我正在做的步骤在https://rapidgator.net/api/user/login上发送 带有用户名和数据的帖子请求,我得到了这个输出

{"response":{"session_id":"g8a13f32hr4cbbbo54qdigrcb3","expire_date":1542688501,"traffic_left":"13178268723435"},"response_status":200,"response_details":null}

现在我在这个 url 上发送一个 get 请求(我也尝试过 Post Request 但发生了同样的事情),会话 ID 和 URL 嵌入在 URL https://rapidgator.net/api/file/download?sid= &url= 中,我我得到这个输出

{"response":{"url":"http:\/\/pr56.rapidgator.net\/\/?r=download\/index&session_id=uB9st0rVfhX2bNgPrFUri01a9i5xmxan"},"response_status":200,"response_details":null}

当我尝试通过浏览器从 Url 下载文件时,它显示 Invalid Session 和有时打开的连接过多错误

错误链接:- https://i.imgur.com/wcZ2Rh7.png 成功响应:- https://i.imgur.com/MqTsB8Q.png

标签: phpapi

解决方案


Rapidgator 需要使用不同的 URL 访问其 api 三次。

 $cookie = $working_dir.rand();
 $headers = array("header"=>"Referer: https://rapidgator.net");

     $ch = curl_init();
           curl_setopt($ch, CURLOPT_URL, "http://rapidgator.net/api/user/login");
           curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
           curl_setopt($ch, CURLOPT_POSTFIELDS, "username=email@domain.ext&password=myplaintextpassword");
           curl_setopt($ch, CURLOPT_POST, 1);
           curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
           curl_setopt($ch, CURLOPT_HEADER, 0);
           curl_setopt($ch, CURLOPT_VERBOSE, 0);
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
           curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
           curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
           curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 $result = curl_exec($ch);
           curl_close ($ch);

 $rapidgator_json = json_decode($result,true);
 return array($rapidgator_json['response']['session_id'],$cookie);

http://rapidgator.net/api/user/login(这是初始登录) 上面的链接为您提供了您需要的会话 ID。响应是 JSON

现在我们需要请求一个下载链接,让我们无需登录人工输入表单即可下载。因此,我们将使用它的 api 使用我们从第一个 url 获得的初始会话 id 请求下载链接。

 $headers = array("header"=>"Referer: http://rapidgator.net/api/user/login");

     $ch = curl_init();
           curl_setopt($ch, CURLOPT_URL, "http://rapidgator.net/api/file/download?sid=$rapidgator_session&url=$rapidgator_file");
           curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
           curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
           curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
           curl_setopt($ch, CURLOPT_HEADER, 0);
           curl_setopt($ch, CURLOPT_VERBOSE, 0);
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           curl_setopt($ch, CURLOPT_COOKIEJAR, $working_dir.$rapidgator_cookie);
           curl_setopt($ch, CURLOPT_COOKIEFILE, $working_dir.$rapidgator_cookie);
           curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
           curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 $result = curl_exec($ch);
           curl_close ($ch);

 $rapidgator_json = json_decode($result,true);
 return array($rapidgator_json['response']['url']);

基本上,我们传递 Rapidgator 给我们的会话 id,假设您正确传递了一个有效帐户。然后我们包含您获得的源网址(链接到文件)http://rapidgator.net/api/file/download?sid=$rapidgator_session&url=$rapidgator_file

在那之后。Rapidgator 将返回带有 URL 的 JSON 响应,您可以使用该 URL 获取相关文件。这允许您使用您想要的任何下载方法,因为该链接是一个会话 url,在短时间内有效。

$rapidgator_json['response']['url']

上面的所有代码都有些不完整。建议对 json 响应进行一些额外检查,以了解可能的错误/限制。我最终使用了函数,但这足以让你看到你应该做什么。Rapidshare API 有其他数据可用于确定您是否已超过每日配额。会话 URL 将持续多长时间等等。


推荐阅读