如何从一个QNetworkAccessManager发送回复
How to dispatch replies from one QNetworkAccessManager?
Qt文档说每个应用程序将使用一个QNetworkAccessManager
:
一个QNetworkAccessManager应该足以满足整个Qt的需求。 应用。
但是,我访问多个 Web 服务,并且需要调用单个函数来解析每个服务:
由于我只有一个QNetworkAccessManager::finished(QNetworkReply * reply)
信号,将回复分派给其单个解析函数的最佳方法是什么?
创建请求时,我可以连接到每个QNetworkReply
对象的finished
信号:
QNetworkReply * QNetworkAccessManager::get(const QNetworkRequest & request)
但是,这是连接到只会使用一次的信号(性能)的最佳方式吗?有没有更好的方法?
相关问题:
- 在Qt应用程序中共享cookie的最佳方式
- "停止/关闭"QNetworkAccessManager的正确方法是什么?
- QNetworkAccessManager 从不同的线程获取/发布可能吗?
您可以使用QNetworkRequest::setOriginatingObject(QObject * object)
方法将原始对象的引用附加到请求中。
假设我们有两个对象发出网络请求。在这种情况下,您可以使用以下代码来区分回复。
QNetworkRequest *req1 = new QNetworkRequest();
req1->setOriginatingObject(sender1);
networkAccessManager->get(req1);
QNetworkRequest *req2 = new QNetworkRequest();
req2->setOriginatingObject(sender2);
networkAccessManager->get(req2);
在您的插槽中:
if(reply->request().originatingObject() == sender1){
sender1->handle(...);
}
if(reply->request().originatingObject() == sender2){
sender2->handle(...);
}
相关文章:
- 没有找到相关文章