CEF 訪問需要認證網頁或接口(在Request的Headers中添加認證Token)


轉載:https://blog.csdn.net/wdw984/article/details/85275289

1.首先要讓我們自己的CefClient這個類公有繼承CefRequestHandler

2.添加Request事件構造函數

CefRefPtr<CefRequestHandler> GetRequestHandler() OVERRIDE{ return this; }

3.然后重寫父類的OnBeforeBrowse和OnBeforeResourceLoad兩個方法

在.h文件中添加函數聲名

virtual bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
            CefRefPtr<CefFrame> frame,
            CefRefPtr<CefRequest> request,
            bool user_gesture,
            bool is_redirect) OVERRIDE;

        virtual ReturnValue OnBeforeResourceLoad(
            CefRefPtr<CefBrowser> browser,
            CefRefPtr<CefFrame> frame,
            CefRefPtr<CefRequest> request,
            CefRefPtr<CefRequestCallback> callback) OVERRIDE;

在.cpp中重寫函數

bool CCefBrowserEventHandler::OnBeforeBrowse(CefRefPtr<CefBrowser> browser,
        CefRefPtr<CefFrame> frame,
        CefRefPtr<CefRequest> request,
        bool user_gesture,
        bool is_redirect) {
        CEF_REQUIRE_UI_THREAD();

        return false;
    }

    CefRequestHandler::ReturnValue CCefBrowserEventHandler::OnBeforeResourceLoad(
        CefRefPtr<CefBrowser> browser,
        CefRefPtr<CefFrame> frame,
        CefRefPtr<CefRequest> request,
        CefRefPtr<CefRequestCallback> callback)
    {
        wstring g_tokenValue;
        CefRequest::HeaderMap headers;
        headers.insert(std::make_pair(L"Authorization",g_tokenValue.c_str()));

        request->SetHeaderMap(headers);

        return RV_CONTINUE;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM