【发布时间】:2012-03-31 15:27:24
【问题描述】:
我正在连接一个 API 服务,该服务使用 cookie 对用户进行身份验证。 我在命令提示符下做了这两个语句,它可以工作。
curl -d "u=username&p=password" -c ~/cookiejar https://domain/login
curl -b https://domain/getData
现在我想使用 curl 制作两个等效的 php 文件 login.php 和 get_data.php。
我正在使用
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
在login.php
和
curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile);
在get_data.php
它不工作。正在创建 Cookie 文件,但第二个 curl 没有读取它。
这是正确的方法吗?我是否必须单独读取 cookie 文件并设置标题 Cookie ?任何帮助将不胜感激。谢谢。
【问题讨论】:
-
通常最好同时设置两个 cookie 选项,无论脚本只是读取还是写入 cookie。
-
在
get_data.php的curl请求中是否会自动添加标头值Cookie? -
如果特定的 curl 实例可以读取其他脚本创建的 cookie 文件,那么可以。
-
有什么方法可以查看 curl 请求标头。我可以从 curl 实例中获取它吗?或者有没有像 fiddler for Mac 之类的工具(我正在使用 Mac OS)?
-
嗯。 curlopt_header 将包括标题,但我认为这仅用于响应。要查看传出的内容,您需要网络嗅探器或调试代理