首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QWebEngine头问题

QWebEngine头问题
EN

Stack Overflow用户
提问于 2019-04-02 05:52:53
回答 1查看 140关注 0票数 0

使用QWebEnginePage下载网页。工作非常好,但有时它不适用于某些URL,似乎是一个标题问题。我不知道要发送哪些标头才不会得到这个错误。

标题:

代码语言:javascript
复制
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QApplication>
#include <QWebEnginePage>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QWebEnginePage *p;
    Ui::MainWindow *ui;
protected slots:
    void getHtml(bool s);
    void textChanged();

signals:


};

#endif // MAINWINDOW_H

来源

代码语言:javascript
复制
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QApplication>
#include <QWebEnginePage>
#include <QWebEngineSettings>
#include <QWebEngineHttpRequest>

QWebEngineHttpRequest httpR;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow){
    ui->setupUi(this);
    p = new QWebEnginePage(this);
    httpR.setHeader("Location", "absoluteURI");
    httpR.setUrl(QUrl("https://ca.finance.yahoo.com/quote/AIPT/history?period1=1238597365&period2=1554130165&interval=1d&filter=history&frequency=1d"));
    p->settings()->setAttribute(QWebEngineSettings::AutoLoadImages, false);
    p->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true);
    connect(p, SIGNAL(loadFinished(bool)), this, SLOT(getHtml(bool)));
    p->load(httpR);

}


QString html = "";
void MainWindow::getHtml(bool s){
   p->toHtml(
       [this](QString result) {
           html=result;
           this->textChanged();
           qDebug()<<httpR.headers();
    });
}

void MainWindow::textChanged(){
    qDebug()<<html.size();
}

MainWindow::~MainWindow(){
    delete ui;
}

错误消息:

js:未被识别的内容-安全性-策略指令“不承认-打开器”。 js:未被识别的内容-安全性-策略指令“不承认-打开器”。 860801 QVector(“位置”) js:未识别的内容-安全性-策略指令‘不承认-打开器’。 js:未被识别的内容-安全性-策略指令“不承认-打开器”。 js:未被识别的内容-安全性-策略指令“不承认-打开器”。 js:资源impl.js是使用链接预加载预加载的,但在从窗口的load事件开始的几秒钟内没有使用。请确保它,请确保它有一个适当的价值和它是故意预装的。

EN

回答 1

Stack Overflow用户

发布于 2019-04-12 14:22:12

所以我终于想明白了。它似乎修复了“未识别的内容-安全性-策略指令‘”错误,您必须将html标记属性"rel=noopener“合并到每个链接标记中。但是,由于我想从其他来源下载html网页,所以要更改每个链接有点困难。

相反,经过一些尝试和错误后,我发现这个标题“升级: websocket”修复了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55467789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档