0

我正在尝试使用他们的登录 API - https://github.com/reddit/reddit/wiki/API%3A-login登录 Reddit 。我能够使用成功验证并存储 cookie

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://www.reddit.com/api/login/USERNAME');
curl_setopt ($ch, CURLOPT_REFERER, "http://www.reddit.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 
$postData = 'api_type=json&user=USERNAME&passwd=PASSWORD'; 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_exec($ch);

但是当我添加

curl_setopt($ch, CURLOPT_URL, 'http://www.reddit.com/r/pics');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
echo $data;

在身份验证代码的末尾,我收到了来自 Reddit 的“找不到页面”页面,即使我已成功登录并且该页面似乎表明我确实在 /r/pics 子reddit 中。我想知道是否发生了某种重定向,或者是否有任何选项丢失或不正确。

4

1 回答 1

1

当您加载第二个 URL 时,您仍然会执行 POST 操作。除非您告诉 CURL,否则 CURL 不会“返回”到 GET。尝试添加

curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
于 2012-07-20T14:30:55.377 回答