关于Qt webEngine中的Proxy几点内容

Qt WebEngine使用来自Qt Network的代理设置,并将它们转发到Chromium的网络堆栈。如果设置了QNetworkProxy::applicationProxy,它也将用于Qt WebEngine。如果启用了QNetworkProxyFactory::usesSystemConfiguration(),则代理设置会自动从系统中检索。安装的QNetworkProxyFactory的设置将被忽略。

如果设置了QNetworkProxy::user()和QNetworkProxy::password(),这些凭据将自动用于代理身份验证。用户有责任提供有效的凭据,因为没有错误处理回调。

如果没有使用QNetworkProxy设置凭据,但代理需要身份验证,则会发出QWebEnginePage::proxyAuthenticationRequired信号。对于Qt Quick,会显示一个对话框。

并非所有QNetworkProxy的属性都被Qt WebEngine支持。也就是说,只考虑了QNetworkProxy::type()、QNetworkProxy::hostName()和QNetworkProxy::port()。所有其他代理设置(如 QNetworkProxy::rawHeader())都被忽略。

1、page->proxyAuthenticationRequired用法

在Qt中,page->proxyAuthenticationRequired 是一个信号,它在需要代理身份验证时发出。您可以将其连接到一个槽函数来处理身份验证。

例如,您可以使用以下代码来处理代理身份验证:

void handleProxyAuthReq(const QUrl &url, QAuthenticator *auth, const QString &proxyhost)
{
    auth->setUser(username);
    auth->setPassword(password);
}

webView->page()->proxyAuthenticationRequired.connect(handleProxyAuthReq);

上面的代码将 handleProxyAuthReq 函数连接到 proxyAuthenticationRequired 信号。当需要代理身份验证时,将调用此函数,并传递相关参数。在此函数中,您可以使用 QAuthenticator 对象的 setUser 和 setPassword 方法来设置用户名和密码https://stackoverflow.com/questions/43064194/qt-webengine-set-socks5-proxy

 2、QNetworkProxy::applicationProxy() 的使用

QNetworkProxy::applicationProxy() 是一个静态方法,它返回应用程序级网络代理。您可以使用以下代码使应用程序自动支持网络代理12

QNetworkProxy proxy;
proxy.setType(QNetworkProxy::Socks5Proxy);
proxy.setHostName("proxy.example.com");
proxy.setPort(1080);
proxy.setUser("username");
proxy.setPassword("password");
QNetworkProxy::setApplicationProxy(proxy);

3、QNetworkProxyFactory::usesSystemConfiguration()的使用

QNetworkProxyFactory::usesSystemConfiguration() 是一个静态方法,它返回一个布尔值,表示是否启用了系统代理设置。您可以使用 QNetworkProxyFactory::setUseSystemConfiguration(true) 来启用系统代理设置12

例如:

QNetworkProxyFactory::setUseSystemConfiguration(true);
bool usingSystemConfig = QNetworkProxyFactory::usesSystemConfiguration();

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值