Как отправить HTTPHeader с помощью QT WebEngine?

Я работал с QT WebEngine, чтобы создать настольный веб-браузер, который бы соответствовал моим требованиям во время работы. К сожалению, мне нужно отправить некоторые данные с заголовком HTTP на сайт. Я наткнулся QWebEngineUrlRequestInfo учебный класс’ void QWebEngineUrlRequestInfo::setHttpHeader(const QByteArray &name, const QByteArray &value) метод, но я не знаю, как использовать его в коде. Это мой код до сих пор:

import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 2.0
import QtWebEngine 1.3

ApplicationWindow {
visible: true
width: 320
height: 240
title: qsTr("Browser")
flags: Qt.WindowStaysOnTopHint

WebEngineView {
anchors.fill: parent
url: "some http url here"Rectangle{
height: 100
width: height
}
}
}

Вот мой файл main.cpp:

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QtWebEngine/qtwebengineglobal.h>
#include <QWebEngineUrlRequestInfo>
#include <QByteArray>

int main(int argc, char *argv[])
{
QByteArray key, value;
key.append("SomeKey");
value.append("SomeValue");
QWebEngineUrlRequestInfo url;//Won't work because its constructor is private
url.setHttpHeader(key, value);
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);

QQmlApplicationEngine engine;
QtWebEngine::initialize();
engine.load(QUrl(QLatin1String("qrc:/main.qml")));

return app.exec();
}

Поскольку приведенный выше код выдает ошибку, я действительно не могу найти решение этой проблемы. ТИА

2

Решение

Это мой крошечный проект используя веб-двигатель, к вашему сведению.

view->page()->profile()->setRequestInterceptor(/*instance inerit QWebEngineUrlRequestInterceptor*/)
...
void /*class inerit WebEngineUrlRequestInterceptor*/::interceptRequest(QWebEngineUrlRequestInfo &info)
{
info.setHttpHeader("Accept-Language", "zh-CN,zh;q=0.8");
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]