使用PHP和Curl验证Cookie

时间:2016-02-15 11:40:54

标签: php api authentication curl

我正在针对Space-Track API编写代码,并且curl请求无法进行身份验证。我的代码如下:

$curl = curl_init();

$url = "https://www.space-track.org/basicspacedata/query/class/tle/EPOCH/%3C1969-12-18/NORAD_CAT_ID/4/orderby/EPOCH%20desc/limit/1/format/3le/metadata/true";

$c = curl_init('https://www.space-track.org/auth/login?identity=XXX&password="XXX"');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIEJAR, 'cookies.txt');
$page = curl_exec($c);
curl_close($c);

$c = curl_init($url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIEFILE, 'cookies.txt');
$page = curl_exec($c);
curl_close($c);

echo $page;

收到的回复是:"您必须登录才能完成此操作"

然而,身份验证显然是成功的,因为cookies.txt文件中填充了身份验证消息。

我已经阅读了许多关于卷曲身份验证的教程,我也尝试了其他用户' php(eg)中的space-track API的实现,但还没有设法使这些工作符合我的要求:

https://www.space-track.org/basicspacedata/query/class/tle/EPOCH/%3C1969-12-18/NORAD_CAT_ID/4/orderby/EPOCH%20desc/limit/1/format/3le/metadata/true

请求在浏览器(直接访问)中通过身份验证和终端进行,但在脚本中运行时则不行。直接浏览器访问会返回正确的响应:

0 EXPLORER 1
1 00004U 58001  A 69351.29911760  .00162519 +00000-0 +00000-0 0  9991
2 00004 033.1571 316.5155 0244636 013.0841 347.6023 15.32472396567852

通过PHP正确地验证和接收此响应的任何帮助都非常感谢。

0 个答案:

没有答案