cURL不遵循Location:标题

时间:2011-05-26 18:10:58

标签: php api curl rapidshare

我正在尝试使用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分钟而且不知道。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

将CURLOPT_HEADER更改为true。

curl_setopt($ch, CURLOPT_HEADER, 1);

如果我已正确阅读文档,那将返回请求页面的heaader,其中包含“Location”指令,并且将CURLOPT_FOLLOWLOCATION设置为true,它应该遵循该重定向,而其他任何其他都通过Location指令。< / p>