我正在为没有它的网站编写“API”。
基本上,我的 PHP 代码登录网站并获取我需要的数据(两种不同的传输)。
在登录时,我遇到了一些问题。该网站通过 HTTP 设置了几个 cookie,我正在使用 CURL 的 cookie 机制捕获这些 cookie。 这似乎很有效,除了他们还试图在同一响应中通过 javascript 设置 cookie。
我不需要解析 javascript,因为它们设置的 cookie 是完全可以预测的。 我需要的是以某种方式告诉 CURL 这个 cookie 存在,同时它仍然维护其他 cookie。
帮助? :)
通过 curl POST 提交登录详细信息后,我得到了这些 header :
HTTP/1.1 200 OKDate: Fri, 20 Aug 2010 09:39:14 GMT
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 492
Set-Cookie: JSESSIONID=5DE1F32B3668DABB408BBEA10C28DBD5.testmmf1; Path=/merchantlogin
Set-Cookie: loginType=M
Connection: close
这是页面内容:
<script type="text/javascript">
var nextyear = new Date();
nextyear.setFullYear(nextyear.getFullYear() + 1);
document.cookie = 'login=' + document.referrer + '; expires=' + nextyear.toGMTString();
</script>
注意 Set-Cookie 和 document.cookie 部分。
最佳答案
通过代码生成 cookie 文件,在向位置发出请求之前,女巫要求 cookie 通过带有选项 CURLOPT_COOKIEFILE 的 setopt 添加它
关于php - 将 cookie 与 CURL 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3529284/