PyQt 中访问 HTTP 接口并传递数据
PyQt 中访问 HTTP 接口并传递数据,您可以使用 PyQt 的 QTcpServer
类和 QTcpSocket
类。以下是一个简单的示例代码,演示如何使用 QTcpServer
类和 QTcpSocket
类来访问 HTTP 接口并传递数据:
import sys from PyQt5.QtCore import QTcpServer, QTimer from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest class MyServer(QTcpServer): def __init__(self, host, port): super().__init__() self.host = host self.port = port self.sock = QTcpSocket() self.sock.bind((self.host, self.port)) self.sock.listen(1) def handleConnection(self, client_socket): print(f"New connection from {client_socket.peerName()}") def run(self): while True: try: client_socket, address = self.sock.accept() print(f"New connection from {client_socket.peerName()}") self.handleConnection(client_socket) except: pass if __name__ == '__main__': server_address = ('', 8000) server = MyServer(server_address, 8000) server.start() # 等待 5 秒钟,以便服务器可以接收连接并传递数据 QTimer.singleShot(5000, server.handleConnection)
在这个示例代码中,我们首先导入了必要的模块,包括 QTcpServer
类、QTcpSocket
类和 QNetworkAccessManager
。然后,我们创建了一个名为 MyServer
的自定义 QTcpServer
类,并在其构造函数中设置了服务器的主机名和端口号。我们还创建了一个 QTcpSocket
对象,并将其绑定到指定的主机和端口。我们还将 listen
方法设置为 1,表示服务器将始终等待一个客户端连接。
接下来,我们在主函数中创建了一个 MyServer
对象,并启动了服务器。然后,我们使用 QTimer.singleShot
方法等待 5 秒钟,以便服务器可以接收连接并传递数据。
在这个示例代码中,我们首先创建了一个名为 MyServer
的自定义 QTcpServer
类,并在其构造函数中设置了服务器的主机名和端口号。我们还创建了一个 QTcpSocket
对象,并将其绑定到指定的主机和端口。我们还将 listen
方法设置为 1,表示服务器将始终等待一个客户端连接。
接下来,我们在主函数中创建了一个 MyServer
对象,并启动了服务器。然后,我们使用 QTimer.singleShot
方法等待 5 秒钟,以便服务器可以接收连接并传递数据。
最后,我们创建了一个名为 server_address
的列表,其中包含服务器的主机名和端口号。我们还创建了一个名为 server
的 MyServer
对象,并启动了服务器。
####################