Pyside6 HTTP API工具类功能实现与踩坑记录
官方文档
QNetworkAccessManager
在Pyside6中使用 QNetworkAccessManager进行Http通信。QNetworkAccessManager中有get、head、post、put、delete请求方式,也可以使用sendCustomRequest()函数发送自定义请求。每一种请求最终都会返回一个QNetworkReply对象,其中存放的是HttpResponse的数据。
工具类代码
class HttpClient(QObject):
get_reply_finished = Signal(int, dict)#自定义信号,将接收到的数据发送至外部处理
post_reply_finished = Signal(int, dict)
progress_signal = Signal(int, int)
def __init__(self):
super().__init__()
self.manager = QNetworkAccessManager(self)
self.reply = None
def get(self, url, query_params=None):
if query_params is not None:
request = QNetworkRequest(QUrl(url + "?" + query_params))
else:
request = QNetworkRequest(QUrl(url))
self.reply = self.manager.get(request)
self.reply.finished.connect(self.getReply)#将reply的finished信号与槽函数连接
def post