首页 > 解决方案 > 请求 http URL 时,QT 报告“QNetworkReplyHttpImplPrivate::_q_startOperation 被多次调用”

问题描述

我正在做一个非常小而简单的协议实现,我的程序将发送一个特定的 URL 到目标机器,目标将回复一个 JSON 文件。

我已经阅读了很多关于如何在 QT 中执行此操作的示例,但我仍然面临一条我不理解的日志消息,并且我无法弄清楚问题到底是什么。

这是我发送 http 请求的简约代码的一部分:

主要类:

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private slots:
    void on_connectToSiteButton_clicked();
    void httpFinished();
    void httpReadyRead();

signals:

private:
    Ui::MainWindow *ui;

    QByteArray *mByteArray;
    QNetworkAccessManager *mNetMan;
    QNetworkReply *reply;

};

这是实际发送网络请求的实现:

    void MainWindow::on_connectToSiteButton_clicked()
{

    mNetMan = new QNetworkAccessManager;
    // Send a Alarm status request
    const QUrl ALARMLIST_URL("http://192.168.1.115/JSON.HTML?FN=ALSummary");

    reply = mNetMan->get(QNetworkRequest(ALARMLIST_URL));
    connect(reply, &QNetworkReply::finished, this, &MainWindow::httpFinished);
    connect(reply, &QIODevice::readyRead, this, &MainWindow::httpReadyRead);
}

当我运行代码并按下按钮时,我在应用程序输出窗口中收到以下消息: QNetworkReplyHttpImplPrivate::_q_startOperation 被多次调用 QUrl(" http://192.168.1.115/JSON.HTML?FN=ALsummary ")

当我搜索解决方案时,我发现只有 git 注释,但没有解释原因。

标签: qtnetwork-programmingqnetworkaccessmanagerqnetworkreply

解决方案


这似乎是一个(同时)已知的错误,将在 Qt 5.12.2 中修复:QTBUG-72463


推荐阅读