1

RapidshareのAPIを使用してファイルをダウンロードしようとしています。そのためには、downloadサブルーチンを2回要求する必要があります。1回目は使用する適切なダウンロードサーバーを取得し、2回目は最初の要求で提供されたサーバーで再度ダウンロードを要求します。2番目の呼び出しは、ファイルを送信するものです。

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 に答える