El cliente solicita un módulo de red QNetworkCookieJar QNetworkCookie el estado de conexión de red compartida (siete)

Una breve
1. Las empresas de Internet c / s de arquitectura son de visualización y de intercambio de datos realiza a través de la interfaz de red o la petición del navegador para acceder al servidor.
2. El cliente se autentifica el enlace de contraseña de la cuenta basada en servidor.
3. Después de verificar la identidad del servidor va a tener éxito en la escritura cookies de cliente de vuelta.
utiliza cookies 4.QNetworkAccessManager eran QNetworkCookieJar gestión de todas las solicitudes QNetworkAccessManager hará uso de su QNetworkCookieJar interna
Aquí Insertar imagen Descripción
5. Si desea utilizar la interfaz de acceso QWebEngineView requiere URL de autenticación, como Taobao, Jingdong y por lo tanto necesidad de iniciar sesión. En este momento, la necesidad descrita anteriormente a las cookies acciones en QWebEngineView. Los métodos específicos son los siguientes:
QWebEngineView :: QWebEnginePage CookieStore :: :: :: QWebEngineProfile la setCookie (const QNetworkCookie y Cookies, Origen = const qurl y qurl ()); la url es la adición de autenticación para acceder a las cookies
códigos II subclase 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,该类的对象一旦被删除,里面的cookies也被丢弃。
//如果想存储在本地,必须继承该类然后自己实现存储。
class CookieJar : public QNetworkCookieJar
{
public:
    explicit CookieJar(QObject *parent = nullptr);
    ~CookieJar();
    void setCookies(const QList<QNetworkCookie> &cookieList);
    QList<QNetworkCookie> getCookies() const;
    void modifyCookies();

};

#endif // COOKIEJAR_H

#include "cookiejar.h"
CookieJar::~CookieJar()
{

}

void CookieJar::setCookies(const QList<QNetworkCookie> &cookieList)
{
    return setAllCookies(cookieList);
}

QList<QNetworkCookie> CookieJar::getCookies() const
{
    return allCookies();
}

void CookieJar::modifyCookies()
{
    QList<QNetworkCookie> cookieList = getCookies();
    for(int i=0;i<cookieList.size();i++){
        //配置cookie域名
        if(pre){
            cookieList.at(i).domain() = QString("pre");
        }
        else if(prd){
            cookieList.at(i).domain() = QString("prd");
        }
        //配置鉴权的cookie键值对
        if(cookieList.at(i).name() == QByteArray("auth0")){
            cookieList.at(i).value() = QByteArray("value0");
        }
        if(cookieList.at(i).name() == QByteArray("auth1")){
            cookieList.at(i).value() = QByteArray("value1");
        }
    }
    setCookies(cookieList);
}

Indicando
las peticiones de red realizadas galleta y galleta de respuesta devueltos se pueden utilizar software de captura de Fiddler para visualizarla.
El violinista de software https://www.cnblogs.com/yyhh/p/5140852.html
configuración específica ver https://blog.csdn.net/u010906468/article/details/104747464

Publicado 30 artículos originales · ganado elogios 1 · vistas 1140

Supongo que te gusta

Origin blog.csdn.net/u010906468/article/details/104887324
Recomendado
Clasificación