这篇教程Python实战之使用PyQt5构建HTTP接口测试工具写得很实用,希望能帮到您。
项目背景随着互联网的发展,各种 API(应用程序编程接口)的使用日益广泛。无论是在构建前端和后端应用,还是在进行数据分析和集成时,测试 API 的能力都是基础技能之一。我们将用 PyQt5 创建一个简单的工具,允许用户输入请求 URL 和请求头,并能够选择请求方式(GET 或 POST),以查看返回结果。 具体的效果可以看看这个视频给你们的一个练习
技术栈Python:作为主要编程语言。 PyQt5:用于创建图形用户界面。 Requests:用于发送 HTTP 请求。
用户界面我们将创建一个简单的用户界面,包含以下组件: - URL 输入框
- 请求方式下拉框(GET/POST)
- 请求头设置表格(可以增加和删除行)
- 发送请求的按钮
- 显示信息的区域(包括请求和响应的详细信息)
以下是 setupUi 方法的代码,负责构建用户界面: def setupUi(self, Form): Form.setObjectName("Form") Form.resize(900, 600) self.verticalLayout = QtWidgets.QVBoxLayout(Form) # 添加 ComboBox 选择请求方式 self.comboBox = QtWidgets.QComboBox(Form) self.comboBox.addItem("GET") self.comboBox.addItem("POST") # 添加 LineEdit 输入 URL self.lineEdit = QtWidgets.QLineEdit(Form) self.lineEdit.setPlaceholderText("此处填写url") # 按钮用于发送请求 self.pushButton = QtWidgets.QPushButton(Form) self.pushButton.setText("发送") # 请求头展示的表格 self.tableWidget = QtWidgets.QTableWidget(Form) self.tableWidget.setColumnCount(2) self.tableWidget.setHorizontalHeaderLabels(["名称", "值"]) # 信息框 self.listWidget = QtWidgets.QListWidget(Form) # 组件布局 self.verticalLayout.addWidget(self.comboBox) self.verticalLayout.addWidget(self.lineEdit) self.verticalLayout.addWidget(self.pushButton) self.verticalLayout.addWidget(self.tableWidget) self.verticalLayout.addWidget(self.listWidget)
核心功能实现用户点击“发送”按钮后,将会根据输入的 URL 和请求头发送请求。下列是处理请求的 send_clicked方法: def send_clicked(self): input_url = self.ui.lineEdit.text() send_made = self.ui.comboBox.currentText() data_dict = {} row_count = self.ui.tableWidget.rowCount() for row in range(row_count): key = self.ui.tableWidget.item(row, 0).text() value = self.ui.tableWidget.item(row, 1).text() data_dict[key] = value try: if send_made == 'GET': rt = requests.get(url=input_url, headers=data_dict) else: rt = requests.post(url=input_url, headers=data_dict) except Exception as e: self.ui.listWidget.addItem('请求失败: ' + str(e)) return Python自动检测requests所获得html文档的编码 Python 正则表达式进阶用法之字符集与字符范围详解 |