4

所以从 Qt 5 开始,QHttp 已被弃用,我们现在都应该使用 QNetworkAccessManager。美好的。但是我如何从我的多宿主机器发出请求(HTTP 或其他)而不觉得我在玩轮盘赌?

如果没有办法,那么解决方法是什么?对于我现在的具体情况,我只需要通过 HTTP 下载一个文件。但是真的没有办法用 QtNetwork 以通用的方式做到这一点吗?

4

2 回答 2

1

快速的解决方法是在您的项目文件中使用它

QT += http

为了兼容性,它仍然可以在单独的模块中使用。

于 2014-04-04T02:59:00.810 回答
0

如果您足够幸运,所需的接口是一个单独的物理(硬件)接口,您可以执行例如(web_viewis a QWebView*):

QNetworkConfigurationManager config_manager;
QList<QNetworkConfiguration> configs = config_manager.allConfigurations();
bool found_interface = false;
QString desired_interface_name("eth1");
foreach (const QNetworkConfiguration &config, configs) {
    if (config.name() == desired_interface_name) {
        found_interface = true;
        QNetworkAccessManager *network_access_manager = new QNetworkAccessManager;
        network_access_manager->setConfiguration(config);
        web_view->page()->setNetworkAccessManager(network_access_manager);
        break;
    }
}
if (!found_interface) {
    //we failed to find the interface!
}

eth1:1同样,如果 IP 绑定到一个物理接口的虚拟接口部分(例如,eth1:2等),这将不起作用。我仍在为这种情况寻找解决方案。

于 2014-04-28T02:39:46.113 回答