当前位置: 首页 > news >正文

qt QNetworkProxy详解

一、概述

QNetworkProxy通过设置代理类型、主机、端口和认证信息,可以使应用程序的所有网络请求通过代理服务器进行。它支持为Qt网络类(如QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer、QNetworkAccessManager等)配置网络层代理支持,并且代理支持被设计为尽可能透明,这意味着编写的现有启用网络的应用程序可以自动支持网络代理。

二、常用方法及概念

  • QNetworkProxy():构造一个默认的 QNetworkProxy 对象。
  • QNetworkProxy(ProxyType type,const QString &hostName = QString(),quint16 port =0,const Qstring &user = Qstring(), const QString &password = Qstring()):构造一个QNetworkProxy 对象,使用指定类型、主机名、端口、用户和密码进行初始化。
  • void setType(ProxyType type):设置代理的类型。
  • void setHostName(const Qstring &hostName):设置代理主机名
  • void setPort(quint16 port):设置代理端囗。
  • void setUser(const Qstring &user):设置代理用户名。
  • void setPassword(const QString &password):设置代理密码。
  • ProxyType type()const:返回代理类型
  • QString hostName()const:返回代理主机名,
  • quint16 port() const:返回代理端囗。
  • QString user()const:返回代理用户名
  • QString password()const:返回代理密码。
  • static void setApplicationProxy(const QNetworkProxy &proxy):设置应用程序范围内的默认代理。
  • static QNetworkProxy applicationProxy():返回应用程序范围内的默认代理。

代理类型(QNetworkProxy::ProxyType)

  • QNetworkProxy::DefaultProxy:使用平台默认的代理设置。
  • QNetworkProxy::Socks5Proxy:使用 Socks5 代理。
  • QNetworkProxy::HttpProxy:使用 HTTP 代理。
  • QNetworkProxy::HttpCachingProxy:使用 HTTP 缓存代理。
  • QNetworkProxy::FtpCachingProxy:使用 FTP 缓存代理
  • QNetworkProxy::NoProxy:不使用代理
// 设置HTTP代理
QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
proxy.setHostName("proxy.example.com");
proxy.setPort(8080);
proxy.setUser("username");
proxy.setPassword("password");
QNetworkProxy::setApplicationProxy(proxy);QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
connect(networkManager, &QNetworkAccessManager::finished, this, [&](QNetworkReply *reply)
{if (reply->error() == QNetworkReply::NoError) {// 请求成功QByteArray response = reply->readAll();qDebug() << "Response:" << response;} else {// 请求失败qDebug() << "Error:" << reply->errorString();}reply->deleteLater();
});
QNetworkRequest request(QUrl("http://www.example.com"));
networkManager->get(request); // GET 请求

觉得有帮助的话,打赏一下呗。。

           

http://www.lryc.cn/news/466751.html

相关文章:

  • 推荐IDE中实用AI编程插件,目前无限次使用
  • 【华为HCIP实战课程十五】OSPF的环路避免及虚链路,网络工程师
  • 【编程语言】正则表达式:POSIX 与 PCRE 的全面比较及应用
  • Spark Streaming 数据流处理
  • 高效规划神器 markmap:一键将 Markdown 变思维导图!
  • 微服务基础架构(图)
  • 中电金信:大模型时代 金融机构企业架构转型如何更智能化?
  • 基于CRNN模型的多位数字序列识别的应用【代码+数据集+python环境+GUI系统】
  • windows中命令行批处理脚本学习
  • 版本工具报错:Error Unity Version Control
  • ECharts饼图-饼图标签对齐,附视频讲解与代码下载
  • Python实现基于WebSocket的stomp协议调试助手工具分享
  • 《语音识别方案选型研究》
  • 解决关于HTML+JS + Servlet 实现前后端请求Session不一致的问题
  • ECharts饼图-饼图34,附视频讲解与代码下载
  • 如何实现安川MP3300运动控制器与西门子1200系列PLC进行ModbusTCP通讯
  • react18中如何实现同步的setState来实现所见即所得的效果
  • 深入理解MVP架构模式
  • Java面试题七
  • linux网络编程3——http服务器的实现和性能测试
  • Docker部署Kamailio,并使用LinPhone实现网络通话
  • JAVA-石头迷阵小游戏
  • 鸿蒙--进度条通知
  • 搜维尔科技:varjo xr-4开箱测评,工业用途头显,一流视觉保真度
  • mysql数据量分库分表
  • Vite创建Vue3项目以及Vue3相关基础知识
  • Elasticsearch封装公共索引增删改查
  • Python异常检测:Isolation Forest与局部异常因子(LOF)详解
  • Git的原理和使用(二)
  • docker 发布镜像