1
我試圖使用Rapidshare的API下載文件。爲此,我需要兩次請求它們的download
子例程。一旦獲得適當的下載服務器使用,然後再次請求第一次請求給我的服務器上的下載。第二個調用是發送文件的內容。cURL不遵循以下位置:標題
在第一次調用時,它會返回一個包含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);
不幸的是,它似乎並沒有成爲繼Location頭,因爲沒有什麼是$resp
返回。如果我將URL放入瀏覽器中,它會成功跟蹤位置標題,並向我提供API調用的輸出,所以它必須是PHP或cURL的錯誤。
任何人都可能冒險猜測它可能是什麼?我現在擺弄了30分鐘的時間,不知道。
感謝您的幫助!
您的PHP處於安全模式嗎? http://www.edmondscommerce.co.uk/curl/php-curl-curlopt_followlocation-and-open_basedir-or-safe-mode/ – 2011-05-26 18:15:03
嘗試啓用CURLOPT_HEADER,以便響應的標題包含在'$ resp'中。如果RS使用的是javascript/meta重定向而不是基於頭部的,curl將不會採用這種方式,您必須手動解析。 – 2011-05-26 18:21:34
您是否嘗試訪問生成的網址? – Gerep 2011-05-26 18:21:13