无法在CEF中设置cookie

问题描述 投票:0回答:1

使用cef的SetCookie方法,我希望以这样的方式设置cookie,即每次cef向浏览器发出请求时,都会设置该请求url的cookie并随请求一起发送。当我设置cookie时,我会得到true,但是当我记录请求标头我无法看到我设置的 cookie。使用 SetHeaderByName 方法可以实现这一点,但我希望使用 SetCookie。我想知道哪个是调用 SetCookie 方法的最佳 cef 回调函数以及如何验证如果在不使用 VistAllCookie 和 VisitUrlCookie 的情况下设置 cookie,则正确无误

CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager(nullptr);
CefCookie cookie;
CefString(&cookie.name).FromString("name");
CefString(&cookie.value).FromString("value");
LOG(WARNING)<<"------is cookie set "<<manager->SetCookie(CefString(url),cookie,nullptr);

现在我正在创建浏览器窗口后设置cookie。 我运行应用程序的网址:http://localhost:9000/#https://www.google.com。 如果我在创建 cookie 时缺少一些参数,有人可以为我提供正确的虚拟参数来使用。

c++ frameworks chromium-embedded
1个回答
0
投票

要验证是否设置了 cookie,请将回调传递给 setCookie(第三个参数)。

创建CefSetCookieCallback的子类

class MyCookieCallback: public CefSetCookieCallback {  
   void OnComplete(bool success) {
      //success will tell if you cookie was set or not. 
   } 
}

也尝试添加 cookie.path 。

© www.soinside.com 2019 - 2024. All rights reserved.