如何在CEF + MFC中获取cookie?

时间:2017-03-17 14:29:20

标签: c++ mfc chromium chromium-embedded

我正在将CEF与我的MFC应用程序集成(我正在关注this tutorial)并且我不知道如何获取请求cookie,我正在尝试使用 OnBeforeBrowse 方法,但仍然没有成功我也尝试在 OnResourceResponse ,但我只设法在响应中获得一些cookie。

一些初学者问题:GetFirstPartyForCookies方法的作用是什么?我阅读文档仍然没有理解。 我是否习惯使用CefCookieManager?我以为我应该使用VisitAllCookies方法,但访问者参数不能为空它给我一个断言,我正在尝试:

CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager(NULL);
CefRefPtr<CefCookieVisitor> visitor;

manager->VisitAllCookies(visitor);

任何帮助或提示都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

CEF forum上找到了这个答案。

要检索cookie,我必须创建自己的派生自CefCookieVisitor的类,然后调用VisitAllCookies

CefRequestHandler::ReturnValue ClientHandler::OnBeforeResourceLoad(CefRefPtr< CefBrowser > browser,
    CefRefPtr< CefFrame > frame,
    CefRefPtr< CefRequest > request,
    CefRefPtr< CefRequestCallback > callback)
{
    auto strURL = request->GetURL();

    CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager(NULL);
    CefRefPtr<MyCookieVisitor> visitor = new MyCookieVisitor();
    manager->VisitAllCookies(visitor);

    return RV_CONTINUE;
}