ZBLOG

OnBeforeResourceLoad 追加cookie内容不生效

在 Chromium 中使用 OnBeforeResourceLoad 事件来追加 cookie 内容可能不会生效,这是因为在此事件中修改请求头并不能影响到实际的请求。

如果您想要追加 cookie 内容,请尝试以下方法:

  1. 使用 CefRequestHandler 的 OnBeforeSendHeaders 方法:在 OnBeforeSendHeaders 方法中,您可以修改请求头,并在其中添加 Cookie 头。具体的代码示例如下:
bool MyRequestHandler::OnBeforeSendHeaders(
    CefRefPtr<CefBrowser> browser,
    CefRefPtr<CefFrame> frame,
    CefRefPtr<CefRequest> request,
    const CefRefPtr<CefRequestHeaderMap> headers) {

    // 这里获取原有的 Cookie 头内容
    std::string cookieHeader = headers->GetHeaderByName("Cookie");

    // 在现有的 Cookie 头内容后面添加新的 Cookie 值
    cookieHeader += "new_cookie=value; ";

    // 更新请求头中的 Cookie 值
    headers->SetHeaderByName("Cookie", cookieHeader, false);

    return false;
}
  1. 使用 CEF 的 RequestContext 和 CookieManager:首先创建一个全局的 RequestContext 对象,在其中设置一个自定义的 CookieManager,并将该 RequestContext 分配给所有浏览器对象。然后,在需要追加 cookie 的地方,通过 CookieManager 来添加或更新 cookie。具体代码示例如下:
// 创建全局 RequestContext 对象
CefRefPtr<CefRequestContext> g_requestContext = CefRequestContext::CreateContext();

// 设置自定义的 CookieManager 到 RequestContext 中
CefRefPtr<CefCookieManager> cookieManager = g_requestContext->GetCookieManager();
cookieManager->SetStoragePath("path/to/cookie");
cookieManager->SetSupportedSchemes({"http", "https"});

// 将 RequestContext 分配给浏览器对象
CefBrowserSettings browserSettings;
browserSettings.default_encoding = "utf-8";
CefRefPtr<CefBrowser> browser = CefBrowserHost::CreateBrowser(windowInfo, handler, url, browserSettings, g_requestContext);

然后,在需要追加 cookie 的地方,通过 CookieManager 来添加或更新 cookie:

CefRefPtr<CefCookie> cookie = CefCookie::Create();
cookie->SetName("new_cookie");
cookie->SetValue("value");
cookie->SetDomain(".example.com");
cookie->SetPath("/");
// 过期时间等其他设置...

// 使用 CookieManager 来添加或更新 cookie
bool result = cookieManager->SetCookie(url, cookie, nullptr);
if (!result) {
    // 处理设置失败的情况
}

请根据您使用的具体环境和框架进行相应的调整。希望这些方法能对您有所帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=2677

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?