云计算百科
云计算领域专业知识百科平台

【pyside6 拓展】QNetworkProxy代理服务器

文章目录

  • pyside6 拓展:QNetworkProxy 使用入门
    • 1️⃣ QNetworkProxy 是什么?
    • 2️⃣ QNetworkProxy 的常见用途
      • 基本使用示例:使用代理发起请求
    • 3️⃣ QNetworkProxy 常用函数
      • 1. `setType()` —— 设置代理类型
      • 2. `setHostName()` —— 设置代理服务器地址
      • 3. `setPort()` —— 设置代理服务器端口
      • 4. `setUser()` —— 设置代理认证用户名
      • 5. `setPassword()` —— 设置代理认证密码
      • 6. `setCapabilities()` —— 设置代理的功能
      • 7. `hostName()` —— 获取代理服务器地址
      • 8. `port()` —— 获取代理服务器端口
      • 9. `proxyType()` —— 获取代理类型
    • 4️⃣ 全局代理设置
    • 5️⃣ 总结

pyside6 拓展:QNetworkProxy 使用入门


1️⃣ QNetworkProxy 是什么?

QNetworkProxy 是 Qt 网络模块 (QtNetwork) 中的一个类,用于管理和配置 代理服务器 设置。代理服务器通常用于 隐匿身份、绕过防火墙、提高安全性 等目的。 在 Qt 中,QNetworkProxy 允许应用程序通过指定代理来执行 网络请求,这对于需要代理连接的应用场景(如企业环境、公共网络等)非常重要。

📌 主要功能:

  • 配置 代理服务器(HTTP、SOCKS 等协议)
  • 设置 代理认证信息
  • 支持 全局代理设置,影响所有网络请求
  • 支持多种 代理类型(HTTP、SOCKS、自动代理)

2️⃣ QNetworkProxy 的常见用途

QNetworkProxy 可以用于 配置和管理代理设置,在使用 QNetworkAccessManager 时,可以设置代理,以便通过代理服务器进行所有的网络请求。

基本使用示例:使用代理发起请求

from PySide6.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkProxy
from PySide6.QtCore import QUrl

# 创建 QNetworkAccessManager 实例
manager = QNetworkAccessManager()

# 创建 QNetworkProxy 实例,设置代理
proxy = QNetworkProxy()
proxy.setType(QNetworkProxy.HttpProxy) # 使用 HTTP 代理
proxy.setHostName("proxy.example.com") # 代理服务器地址
proxy.setPort(8080) # 代理服务器端口
proxy.setUser("username") # 代理用户名
proxy.setPassword("password") # 代理密码

# 设置代理
manager.setProxy(proxy)

# 创建请求
url = QUrl("http://example.com")
request = QNetworkRequest(url)

# 发送请求
reply = manager.get(request)

📌 解释:

  • QNetworkProxy() 用于创建代理对象。
  • setType() 设置代理类型(例如 HTTP 代理)。
  • setHostName() 设置代理服务器地址。
  • setPort() 设置代理服务器端口。
  • setUser() 和 setPassword() 用于设置代理认证信息。

3️⃣ QNetworkProxy 常用函数

1. setType() —— 设置代理类型

作用:设置代理的类型,决定代理服务器支持的协议。

原型:

def setType(self, type: QNetworkProxy.ProxyType)

参数:

  • type:代理类型,类型为 QNetworkProxy.ProxyType。

返回值:

  • 无返回值。

可能的取值:

取值含义
QNetworkProxy.NoProxy 不使用代理
QNetworkProxy.HttpProxy HTTP 代理
QNetworkProxy.Socks5Proxy SOCKS5 代理
QNetworkProxy.FtpProxy FTP 代理

示例:

proxy.setType(QNetworkProxy.HttpProxy) # 设置 HTTP 代理


2. setHostName() —— 设置代理服务器地址

作用:设置代理服务器的 主机名或 IP 地址。

原型:

def setHostName(self, hostName: str)

参数:

  • hostName:代理服务器的主机名或 IP 地址。

返回值:

  • 无返回值。

示例:

proxy.setHostName("proxy.example.com") # 设置代理服务器地址


3. setPort() —— 设置代理服务器端口

作用:设置代理服务器的 端口号。

原型:

def setPort(self, port: int)

参数:

  • port:代理服务器的端口号。

返回值:

  • 无返回值。

示例:

proxy.setPort(8080) # 设置代理服务器端口


4. setUser() —— 设置代理认证用户名

作用:设置 代理认证的用户名(如果需要认证)。

原型:

def setUser(self, user: str)

参数:

  • user:代理认证所需的用户名。

返回值:

  • 无返回值。

示例:

proxy.setUser("username") # 设置代理认证的用户名


5. setPassword() —— 设置代理认证密码

作用:设置 代理认证的密码(如果需要认证)。

原型:

def setPassword(self, password: str)

参数:

  • password:代理认证所需的密码。

返回值:

  • 无返回值。

示例:

proxy.setPassword("password") # 设置代理认证的密码


6. setCapabilities() —— 设置代理的功能

作用:设置代理支持的功能(例如支持的协议等)。

原型:

def setCapabilities(self, capabilities: QNetworkProxy.Capabilities)

参数:

  • capabilities:代理的功能,类型为 QNetworkProxy.Capabilities。

返回值:

  • 无返回值。

可能的取值:

取值含义
QNetworkProxy.ProxyType 代理类型
QNetworkProxy.AuthRequired 是否需要认证

示例:

proxy.setCapabilities(QNetworkProxy.AuthRequired) # 设置代理需要认证


7. hostName() —— 获取代理服务器地址

作用:获取代理服务器的 主机名或 IP 地址。

原型:

def hostName(self) > str

返回值:

  • str:代理服务器的主机名或 IP 地址。

示例:

print(proxy.hostName()) # 输出代理服务器地址


8. port() —— 获取代理服务器端口

作用:获取代理服务器的 端口号。

原型:

def port(self) > int

返回值:

  • int:代理服务器的端口号。

示例:

print(proxy.port()) # 输出代理服务器端口


9. proxyType() —— 获取代理类型

作用:获取当前代理的 类型。

原型:

def proxyType(self) > QNetworkProxy.ProxyType

返回值:

  • QNetworkProxy.ProxyType:代理类型,可能的值有 HttpProxy、Socks5Proxy 等。

示例:

print(proxy.proxyType()) # 输出代理类型


4️⃣ 全局代理设置

Qt 允许你为所有的网络请求设置 全局代理,即所有通过 QNetworkAccessManager 发起的请求都将使用相同的代理设置。

from PySide6.QtNetwork import QNetworkProxy
from PySide6.QtCore import QCoreApplication

# 创建全局代理
proxy = QNetworkProxy(QNetworkProxy.HttpProxy, "proxy.example.com", 8080)
QNetworkProxy.setApplicationProxy(proxy)

# 使用代理发起请求
app = QCoreApplication([])
manager = QNetworkAccessManager()

📌 解释:

  • QNetworkProxy.setApplicationProxy(proxy) 设置 全局代理。
  • 之后的所有请求都会使用指定的代理。

5️⃣ 总结

📌 核心 API 总结:

函数作用
setType() 设置代理类型(如 HTTP、SOCKS)
setHostName() 设置代理服务器的地址
setPort() 设置代理服务器的端口
setUser() 设置代理认证的用户名
setPassword() 设置代理认证的密码
setCapabilities() 设置代理功能(如是否需要认证)
hostName() 获取代理服务器地址
port() 获取代理服务器端口
proxyType() 获取代理类型

🎯 QNetworkProxy 使得 Qt 应用程序能够方便地配置代理服务器,用于需要通过 代理服务器 访问网络的应用场景(如企业环境、公共 WiFi 网络等)。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【pyside6 拓展】QNetworkProxy代理服务器
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!