首页 > 解决方案 > QNetworkReply 完成的信号槽未在 Windows 10 上发出

问题描述

我有以下代码使用 QNetworkAccessManager 获取 url 的响应,并使用 QNetworkReply 获取响应代码。在 Windows 8 中进行测试时,我得到了正确的 onReplyfinished() 插槽。在 Windows 10 中使用应用程序时,我没有得到 onReplyfinished()。

 NetManager.h :

class NetManager:public QNetworkAccessManager
{
    Q_OBJECT

  public:

    NetManager(QObject* inParent = 0);

    ~NetManager();

  public slots:

     void onReplyfinished();

  private:

      QNetworkAccessManager *AManager;

      QNetworkReply *NReply;
      QString urlStr;
};

 NetManager.cpp :

 NetManager::NetManager( QObject* inParent ) : QNetworkAccessManager( 
 inParent )
{

   AManager = new QNetworkAccessManager(this);

   urlStr= "https://sampleurl.com/";

   qDebug() << urlStr;

     QUrl url(urlStr);

    QNetworkRequest NetRequest((url));

    NReply= AManager->get(NetRequest);

    connect(NReply, SIGNAL(finished()), this, SLOT(onReplyfinished()));

 }

 void NetManager::onReplyfinished()

 {
    qDebug () << "in getting response";
 }

提前致谢

标签: qtwindows-10qt4qnetworkaccessmanager

解决方案


不要忘记添加 QT += network.pro 文件

并且如果您收到 ssl 问题,请不要忘记复制libcryptolibssl进入您的项目目录


推荐阅读