问题描述
我正在尝试使用Rapidshare的API下载文件。为此,我需要两次请求其“ 0”子例程。一次获得适当的下载服务器以使用,其次在第一个请求给我的服务器上再次请求下载。第二个调用是发送文件的文件。
在第一次调用时,它返回带有a1ѭ字段的标头,我需要遵循此位置。所以我这样做:
$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放在浏览器中,则该URL将成功跟随location标头并为我提供API调用的输出,因此PHP或cURL一定有问题。
谁能冒险猜出它可能是什么?我已经摆弄了30分钟,却一无所知。
谢谢你的帮助!
解决方法
将CURLOPT_HEADER更改为true。
curl_setopt($ch,CURLOPT_HEADER,1);
如果我已阅读正确的文档,则将返回包含“ Location”指令的所请求页面的消息,并且通过将CURLOPT_FOLLOWLOCATION设置为true,它应遵循该重定向,并且通过位置进行任何其他重定向指示。