1

我正在尝试使用 Rapidshare 的 API 下载文件。为此,我需要download两次请求他们的子程序。一次是要使用适当的下载服务器,其次是在第一个请求给我的服务器上再次请求下载。第二个调用是发送文件的内容。

在第一次调用时,它返回一个带有Location: blah字段的标题,我需要遵循这个位置。所以我这样做了:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=download&fileid=$file_id&filename=$file_name&try=1&login={$account['username']}&password={$account['password']}");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$resp = curl_exec($ch);
curl_close($ch);

不幸的是,它似乎没有跟随位置标头,因为$resp. 如果我将 URL 放在浏览器中,它会成功跟踪位置标头并给我 API 调用的输出,所以它一定是 PHP 或 cURL 有问题。

任何人都可以冒险猜测它可能是什么吗?我现在已经摆弄了 30 分钟,也不知道。

谢谢你的帮助!

4

1 回答 1

1

将 CURLOPT_HEADER 更改为 true。

curl_setopt($ch, CURLOPT_HEADER, 1);

如果我正确阅读了文档,它将返回请求页面的标题,其中包含“Location”指令,并且通过将 CURLOPT_FOLLOWLOCATION 设置为 true 它应该遵循该重定向,并且通过 Location 指令进行任何其他操作。

于 2013-04-05T20:55:26.923 回答