一、简述
1.互联网公司的c/s架构都是通过网络请求或者浏览器界面访问服务端来完成数据的展示和交换。
2.客户端依据账户密码链接服务端进行身份验证。
3.身份验证成功之后服务端都会在客户端回写cookies。
4.QNetworkAccessManager利用QNetworkCookieJar进行cookies的管理,QNetworkAccessManager的所有请求都会使用其内部的QNetworkCookieJar
5.如果想利用QWebEngineView访问需要鉴权的网址,例如淘宝,京东等等需要登录的界面。此时需要将上述cookies共享到QWebEngineView中。具体方法如下:
QWebEngineView::QWebEnginePage::QWebEngineProfile::cookieStore::setCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl());即为将要访问的url添加鉴权cookies
二、子类化CookieJar代码
#ifndef COOKIEJAR_H
#define COOKIEJAR_H
#include <QObject>
#include <QNetworkCookie>
#include <QDebug>
#include <QNetworkCookieJar>
#define pre true
#define prd true
//使用QNetworkAccessManager访问网络时,需要管理Cookie信息。
//Qt的QNetworkCookieJar类实现了一个简单的Cookie容器,但它只在内存中保留Cookie,该