写入cookie
std::wstring domain = L"dev-box.nn.com";
CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager(NULL);
CefCookie cookie;
CefString(&cookie.name).FromWString(L"FXFUSERNAME");
CefString(&cookie.value).FromWString(L"fengxinfeng");
CefString(&cookie.domain).FromWString(domain.c_str());
CefString(&cookie.path).FromASCII("/");
cookie.has_expires = false;
domain = L"http://" + domain; //此处必须加 http 或https
manager->SetStoragePath(nbase::win32::GetCurrentModuleDirectory() + L"\\cookiestorage",true, NULL); //指定cookie存储位置,true 设为永久保存
manager->SetCookie(domain, cookie, NULL);
//CefPostTask(TID_IO, NewCefRunnableMethod(manager.get(), &CefCookieManager::SetCookie, CefString(domain.c_str()), cookie));
读取cookie
CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager(NULL);
std::wstring domain = L"dev-box.nn.com";
domain = L"http://" + domain;
CefRefPtr<CCookieVisitor> callback(new CCookieVisitor);
manager->SetStoragePath(nbase::win32::GetCurrentModuleDirectory() + L"\\cookiestorage", true, NULL); // 指定cookie位置
manager->VisitUrlCookies(domain, true, callback); // CefCookieVisitor callback
#pragma once
#include "include/cef_base.h"
#include "include/cef_cookie.h"
#include "include/cef_frame.h"
class CCookieVisitor :public CefCookieVisitor
{
public:
CCookieVisitor() ;
~CCookieVisitor() ;
bool Visit(const CefCookie& cookie, int count, int total, bool& deleteCookie); //override
IMPLEMENT_REFCOUNTING(CCookieVisitor);
};
#include "stdafx.h"
#include "CCookieVisitor.h"
CCookieVisitor::CCookieVisitor() {
}
CCookieVisitor::~CCookieVisitor() {
}
bool CCookieVisitor::Visit(const CefCookie& cookie, int count, int total,
bool& deleteCookie) {
CefString(cookie.name.str);
deleteCookie = false;
return false;
}