QWebEngineUrlRequestInterceptor - получить заголовки - PullRequest
0 голосов
/ 07 февраля 2020

Я обрабатываю запросы, установив QWebEngineUrlRequestInterceptor. Это прекрасно работает, но QWebEngineUrlRequestInfo не имеет headers() свойства. Я могу только добавить новый заголовок QWebEngineUrlRequestInfo::setHttpHeader. Я поискал решение и нашел, что я также могу установить QWebEngineUrlSchemeHandler, но, похоже, он не работает или не соответствует ожиданиям. Я инициализирую как предложено в do c:

int main(int argc, char *argv[])
{
    QWebEngineUrlScheme scheme("myscheme");
    scheme.setSyntax(QWebEngineUrlScheme::Syntax::HostAndPort);
    scheme.setDefaultPort(2345);
    scheme.setFlags(QWebEngineUrlScheme::SecureScheme);
    QWebEngineUrlScheme::registerScheme(scheme);

    QApplication a(argc, argv);

    // installUrlSchemeHandler does not take ownership of the handler.
    MySchemeHandler *handler = new MySchemeHandler(&a);
    QWebEngineProfile::defaultProfile()->installUrlSchemeHandler("myscheme", handler);

    ....
}

Заголовок:

class MySchemeHandler : public QWebEngineUrlSchemeHandler
{
    Q_OBJECT
public:
    MySchemeHandler(QObject *parent = nullptr);
    void requestStarted(QWebEngineUrlRequestJob *request) override;
};

cpp:

MySchemeHandler::MySchemeHandler(QObject *parent)
    : QWebEngineUrlSchemeHandler(parent)
{

}

void MySchemeHandler::requestStarted(QWebEngineUrlRequestJob *request)
{
    qDebug() << "test";
}

Но requestStarted - это никогда не срабатывает

...