如何在身份验证后从curl获取安全cookie?
curl_easy_getinfo(curl_handler,CURLINFO_COOKIELIST,& cookies); 只获取了一个cookie,另一个安全cookie没有被提取。
同样的 curl_easy_setopt(curl_handler,CURLOPT_COOKIEJAR," cookie.txt");
然而在java中我们可以使用cookie管理器进行登录,如果我们迭代了cookie管理器,那么在完成所有操作后,其中有两个" Cookie"和" _WL_AUTHCOOKIE_JSESSIONID"。
在curl中,我无法获取" _WL_AUTHCOOKIE_JSESSIONID"
任何帮助都将不胜感激。
答案 0 :(得分:0)
首先,curl应该获得与任何其他HTTP客户端相同的cookie集。
不幸的是,这是一个应该,因为服务器有时会根据它认为它所说的客户端而有所不同,因此它可能会有不同的反应。此外,由于您正在与另一个客户端进行比较,因此您看到的Java版本可能会执行更多HTTP请求,使其获得您的curl请求所不具备的第二个cookie。
为了最大限度地降低所有这些风险,请确保请求尽可能相似,以便服务器无法发现客户端之间的差异,然后它应该以相同的方式响应,并且在这两种情况下您将获得相同的Cookie集。
当基于curl的客户端同时获取两个cookie时,您可以根据需要使用CURLINFO_COOKIELIST将其解压缩。