身份验证后从curl获取安全cookie(c ++)

时间:2014-09-23 06:45:30

标签: c++ authentication curl cookies oauth-2.0

如何在身份验证后从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"

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

首先,curl应该获得与任何其他HTTP客户端相同的cookie集。

不幸的是,这是一个应该,因为服务器有时会根据它认为它所说的客户端而有所不同,因此它可能会有不同的反应。此外,由于您正在与另一个客户端进行比较,因此您看到的Java版本可能会执行更多HTTP请求,使其获得您的curl请求所不具备的第二个cookie。

为了最大限度地降低所有这些风险,请确保请求尽可能相似,以便服务器无法发现客户端之间的差异,然后它应该以相同的方式响应,并且在这两种情况下您将获得相同的Cookie集。

当基于curl的客户端同时获取两个cookie时,您可以根据需要使用CURLINFO_COOKIELIST将其解压缩。