gpt4 book ai didi

Qt QNetworkAccessManager 不发出信号

转载 作者:行者123 更新时间:2023-12-03 17:20:50 29 4
gpt4 key购买 nike

函数 CheckSite() 使用类似 http://example.com 的 URL 调用,它初始化一个 QNetworkAccessManager 对象和 connect() 插槽和信号。

manger->get() 调用似乎有效(它会生成 http 流量),但不会在请求结束时调用插槽 replyFinished()。

这段代码有什么问题?

#include <QtCore>
#include <QtNetwork>

class ClientHandler : public QObject
{
Q_OBJECT
QNetworkAccessManager *manager;
private slots:
void replyFinished(QNetworkReply *);
public:
void CheckSite(QString url);
};

void ClientHandler::replyFinished(QNetworkReply *reply) { qDebug() << "DONE"; }

void ClientHandler::CheckSite(QString url) {
QUrl qrl(url);
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(qrl));
}

最佳答案

没有。我把它包裹起来,所以它功能齐全,而且工作正常:

// placed in client.cpp
#include <QtDebug>
#include <QCoreApplication>

/* YOUR CODE */

int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
ClientHandler handler;
handler.CheckSite("www.google.com");
return app.exec();

}

#include "client.moc"

它按预期输出“完成”。也许您正在检查的网站真的没有返回?也许它需要 authentication或正在生产 ssl errors ?

关于Qt QNetworkAccessManager 不发出信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2776640/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com