Advertisement

QT http通信的同步与异步

阅读量:

当 Qt 与 HTTP 进行通信时,在不同的场景下会选择同步或异步的方式来处理数据请求。

所谓同步意味着,在发送Http请求后,系统持续接收来自服务器的数据流,并在接收到数据之前保持阻塞状态。

所谓异步操作, 即发送一个Http请求后, 程序可以在接收到服务器返回的数据后继续执行任务, 并在这些数据被接收的同时触发相关槽函数来处理这些信息。

同步操作需要在发送请求后配置一个QEnentLoop实例,在异步场景中则只需绑定相应的槽函数即可。

同步代码如下

复制代码
     QUrl url(myurl);

    
     QNetworkReply *reply = quitmanager->get(QNetworkRequest(QUrl(url)));
    
     QEventLoop eventLoop;
    
     connect(quitmanager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
    
     eventLoop.exec();       //block until finish
    
  
    
     //reply->readall()
    
     reply->deleteLater();
    
     re

全部评论 (0)

还没有任何评论哟~