Cef Cookie管理器SetCookie总是返回false

Cef Cookie Manager SetCookie always returns false

本文关键字:返回 false SetCookie Cookie 管理器 Cef      更新时间:2023-10-16

我正在做一个项目,在我的应用程序中加载网络视图(使用visual studio 2012)。在加载web视图之前,我发送了一个curl请求,以获取一些access_token,我需要在该特定web视图的cookie中设置该请求,以便用户自动登录该web视图。因此,在curl的回调中,当我获得令牌时,我在cef全局cookie管理器上调用setCookie,但它总是返回我false

CefRefPtr<CefCookieManager> cookieManager=CefCookieManager::GetGlobalManager();
    CefString cefURL ;
    cefURL.FromString(url.GetUTF8String());
    bool retVal = cookieManager->SetCookie(cefURL,cookie);

我做错了什么吗,是因为我在curl回调上做了什么吗?curl回调是一个单独的线程。

CefRefPtr<CefCookieManager> manager =
        CefCookieManager::GetGlobalManager(nullptr);
DCHECK(manager.get());
CefCookie cookie;
        CefString(&cookie.name).FromString(key);
        CefString(&cookie.value).FromString(value);
        CefString(&cookie.domain).FromString(domain);
        CefString(&cookie.path).FromString("/");
        cookie.has_expires = true;
        cookie.expires.year = 2099;
        cookie.expires.month = 1;
        cookie.expires.day_of_week = 1;
        cookie.expires.day_of_month = 1;
        std::string url = "https://" + domain;//eg:".stackoverflow.com"
        //manager->SetCookie(url, cookie, nullptr);
        CefPostTask(TID_IO, NewCefRunnableMethod(manager.get()
            , &CefCookieManager::SetCookie
            , CefString(url.c_str()), cookie, nullptr));

通过进程间通信进行设置,使用CefPostTask函数