我正在使用Furk.net API,我已成功使用curl函数登录并将帖子数据提交到正确的网址(http://api.furk.net/api/login/login)。当我回显结果时,我收到一条成功消息,cookie已成功存储在我的服务器上。但是,当我尝试从API检索信息时,它会让我拒绝访问。我想知道为什么我的cookie没有用于所有后续请求?
function getUrl($url, $method='', $vars='') {
global $megauser;
$ch = curl_init();
if ($method == 'post') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
$buffer = curl_exec($ch);
curl_close($ch);
return $buffer;
}
$login_data = array(
'login' => 'user',
'pwd' => 'pass'
);
echo getUrl('http://api.furk.net/api/login/login','post', $login_data);
如果我在cookie存在的情况下使用相同的功能在API上尝试另一个请求,我会拒绝访问,但如果我在登录时在浏览器中尝试相同的请求,我会得到相应的结果。
答案 0 :(得分:3)
登录时,您无需保存cookie。您将通过apy_key从API收到答案。 您需要保留该密钥,并将其与所有其他请求一起发送到API(与POST参数一样)
你不应该同时使用cookie和api_key,因为如果两个请求都被发送,一些请求会被拒绝。