如何使用 Qt 获取系统代理?

Posted

技术标签:

【中文标题】如何使用 Qt 获取系统代理?【英文标题】:How do I get the system proxy using Qt? 【发布时间】:2009-05-31 20:47:45 【问题描述】:

我有以下代码,我试图从中提取系统代理设置:

QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::systemProxyForQuery();
foreach ( QNetworkProxy loopItem, listOfProxies ) 
    qDebug() << "proxyUsed:" << loopItem.hostName();

我只拿回了一件带有空白主机名的物品。有什么我想念的想法吗?

【问题讨论】:

loopItem.type() 显示什么?闻起来像“无代理”(类型 2),当 Qt 找不到代理时会发生这种情况(有关代理工厂的限制,请参阅他们的文档)。 如您所说,它显示类型 2。 【参考方案1】:

通过放置:

QNetworkProxyQuery npq(QUrl("http://www.google.com"));
QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::systemProxyForQuery(npq);

我好像把代理弄出来了。

【讨论】:

【参考方案2】:

QNetworkProxyQuery npq(QUrl(QLatin1String("http://www.google.com")));

别忘了使用QLatin1String :)

【讨论】:

不是答案。没有解释为什么要使用 QLatin1String。为什么不是 QStringLiteral?等等。

以上是关于如何使用 Qt 获取系统代理?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 QT QWebView 管理代理

如何从chrome扩展获取系统代理设置?

如何从qt模型中获取所有数据

Qt:如何获取特定小部件的像素指标

如何从我的应用程序无缝地使用 ISA 代理进行身份验证?

如何在 Linux 上使用 QProcessEnvironment 设置代理地址?