如何在CEF + MFC中获取cookies?

How to get cookies in CEF + MFC?

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

几个初学者问题:GetFirstPartyForCookies 方法的作用是什么?我阅读了文档,但仍然不明白。 我应该使用 CefCookieManager 吗?我想我应该使用 VisitAllCookies 方法,但访问者参数不能为空,它给了我一个断言,我正在尝试:

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

manager->VisitAllCookies(visitor);

如有任何帮助或提示,我们将不胜感激。

CEF forum 上找到了这个答案。

要检索 cookie,我必须创建自己的 class 从 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;
}