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

内蒙古建设厅网站查询cmsapp模板网站

内蒙古建设厅网站查询,cmsapp模板网站,汽车电商网站建设,wordpress文章分类一个python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具 文章目录 python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具项目背景技术栈用户界面核心功能实现结果展示完整代码总结 在现代软件开发中#xff0c;测试接口的有效性与响应情况变得尤为重要。本文将指导…python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具 文章目录 python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具项目背景技术栈用户界面核心功能实现结果展示完整代码总结 在现代软件开发中测试接口的有效性与响应情况变得尤为重要。本文将指导构建一个简单的 HTTP 接口测试工具使用 Python 的 PyQt5 库创建用户界面并通过 requests 库发送 HTTP 请求。 项目背景 随着互联网的发展各种 API应用程序编程接口的使用日益广泛。无论是在构建前端和后端应用还是在进行数据分析和集成时测试 API 的能力都是基础技能之一。我们将用 PyQt5 创建一个简单的工具允许用户输入请求 URL 和请求头并能够选择请求方式GET 或 POST以查看返回结果。 具体的效果可以看看这个视频给你们的一个练习_哔哩哔哩_bilibili 技术栈 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 输入 URLself.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] valuetry:if send_made GET:rt requests.get(urlinput_url, headersdata_dict)else:rt requests.post(urlinput_url, headersdata_dict)except Exception as e:self.ui.listWidget.addItem(请求失败: str(e))returnself.ui.listWidget.addItem(f状态码{rt.status_code})for key, value in rt.headers.items():self.ui.listWidget.addItem(f{key}: {value})结果展示 在信息框中会显示请求的 URL、请求头信息及其响应状态码。这种实时反馈可以帮助开发者快速调试 API。 如上图所示在只填写url的情况下发现状态码是412访问失败 当我们把useragent填充之后就可以正常访问网址了 完整代码 import sys import requests from PyQt5.QtWidgets import QApplication,QWidget from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName(Form)Form.resize(900, 600)self.verticalLayout QtWidgets.QVBoxLayout(Form)self.verticalLayout.setObjectName(verticalLayout)self.horizontalLayout QtWidgets.QHBoxLayout()self.horizontalLayout.setObjectName(horizontalLayout)self.comboBox QtWidgets.QComboBox(Form)self.comboBox.setObjectName(comboBox)self.comboBox.addItem()self.comboBox.addItem()self.horizontalLayout.addWidget(self.comboBox)self.lineEdit QtWidgets.QLineEdit(Form)self.lineEdit.setObjectName(lineEdit)self.horizontalLayout.addWidget(self.lineEdit)self.pushButton QtWidgets.QPushButton(Form)self.pushButton.setObjectName(pushButton)self.horizontalLayout.addWidget(self.pushButton)self.verticalLayout.addLayout(self.horizontalLayout)self.horizontalLayout_2 QtWidgets.QHBoxLayout()self.horizontalLayout_2.setObjectName(horizontalLayout_2)self.label QtWidgets.QLabel(Form)self.label.setObjectName(label)self.horizontalLayout_2.addWidget(self.label)spacerItem QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.horizontalLayout_2.addItem(spacerItem)self.pushButton_2 QtWidgets.QPushButton(Form)self.pushButton_2.setObjectName(pushButton_2)self.horizontalLayout_2.addWidget(self.pushButton_2)self.pushButton_3 QtWidgets.QPushButton(Form)self.pushButton_3.setObjectName(pushButton_3)self.horizontalLayout_2.addWidget(self.pushButton_3)self.verticalLayout.addLayout(self.horizontalLayout_2)self.tableWidget QtWidgets.QTableWidget(Form)self.tableWidget.setObjectName(tableWidget)self.tableWidget.setColumnCount(2)self.tableWidget.setRowCount(0)item QtWidgets.QTableWidgetItem()self.tableWidget.setHorizontalHeaderItem(0, item)item QtWidgets.QTableWidgetItem()self.tableWidget.setHorizontalHeaderItem(1, item)self.verticalLayout.addWidget(self.tableWidget)self.label_2 QtWidgets.QLabel(Form)font QtGui.QFont()font.setBold(True)font.setWeight(75)self.label_2.setFont(font)self.label_2.setObjectName(label_2)self.verticalLayout.addWidget(self.label_2)self.listWidget QtWidgets.QListWidget(Form)self.listWidget.setObjectName(listWidget)self.verticalLayout.addWidget(self.listWidget)self.horizontalLayout_3 QtWidgets.QHBoxLayout()self.horizontalLayout_3.setObjectName(horizontalLayout_3)spacerItem1 QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.horizontalLayout_3.addItem(spacerItem1)self.pushButton_4 QtWidgets.QPushButton(Form)font QtGui.QFont()font.setBold(True)font.setWeight(75)self.pushButton_4.setFont(font)self.pushButton_4.setObjectName(pushButton_4)self.horizontalLayout_3.addWidget(self.pushButton_4)spacerItem2 QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)self.horizontalLayout_3.addItem(spacerItem2)self.verticalLayout.addLayout(self.horizontalLayout_3)self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate QtCore.QCoreApplication.translateForm.setWindowTitle(_translate(Form, HTTP接口测试))self.comboBox.setItemText(0, _translate(Form, GET))self.comboBox.setItemText(1, _translate(Form, POST))self.lineEdit.setPlaceholderText(_translate(Form, 此处填写url))self.pushButton.setText(_translate(Form, 发送))self.label.setText(_translate(Form, 请求头headers))self.pushButton_2.setText(_translate(Form, ))self.pushButton_3.setText(_translate(Form, -))item self.tableWidget.horizontalHeaderItem(0)item.setText(_translate(Form, 名称))item self.tableWidget.horizontalHeaderItem(1)item.setText(_translate(Form, 值))self.label_2.setText(_translate(Form, 信息框))self.pushButton_4.setText(_translate(Form, 清空))# 绑定按钮self.pushButton.clicked.connect(Form.send_clicked)self.pushButton_2.clicked.connect(Form.add_row)self.pushButton_3.clicked.connect(Form.move_row)self.tableWidget.cellClicked.connect(Form.table_clicked)self.pushButton_4.clicked.connect(Form.clean_panel)# 逻辑函数 class Mywindow(QWidget):def __init__(self):super().__init__()self.ui Ui_Form() # 实例化ui界面self.ui.setupUi(self)self.clicked_row 0 # 默认用户选择的是第0行self.info_text []def table_clicked(self,row):self.clicked_row rowdef send_clicked(self):self.clean_panel()input_url self.ui.lineEdit.text()send_made self.ui.comboBox.currentText()# 展示信息在面板上self.ui.listWidget.addItem(--------发送请求---------)self.ui.listWidget.addItem(f用户要访问的网址是{input_url})self.ui.listWidget.addItem(f用户访问对网址的请求方式是{send_made})self.ui.listWidget.addItem(请求头如下)data_dict {}# 获取行数row_count self.ui.tableWidget.rowCount()# 遍历每一行for row in range(0,row_count):key self.ui.tableWidget.item(row, 0).text()value self.ui.tableWidget.item(row, 1).text()dict1{f{key}:f{value}}self.ui.listWidget.addItem(str(dict1))data_dict dict1|data_dicttry:if send_madeGET:rt requests.get(urlinput_url,headersdata_dict)else:rt requests.post(urlinput_url,headersdata_dict)except:self.ui.listWidget.addItem(url出错)rt 404self.ui.listWidget.addItem(--------返回内容---------)self.ui.listWidget.addItem(f状态码{rt})if not rt 404:for key,value in rt.headers.items():self.ui.listWidget.addItem(f{key} : {value})def add_row(self):self.ui.tableWidget.insertRow(self.ui.tableWidget.rowCount())def move_row(self):self.ui.tableWidget.removeRow(self.clicked_row)self.clicked_row 0 # 把删除行置零def clean_panel(self):print(点击了清理)self.ui.listWidget.clear()self.info_text []if __name__ __main__:app QApplication(sys.argv)window Mywindow()window.show()sys.exit(app.exec_())完整的代码已经在前面展示。确保已经安装 PyQt5 和 requests 库可以通过以下命令安装 pip install PyQt5 requests总结 本项目展示了如何用 PyQt5 来构建 GUI 应用程序并通过 requests 库发送 HTTP 请求。这不仅是学习 PyQt5 的一个好方法也为后续实现更复杂的 API 测试工具奠定了基础。
http://www.hkea.cn/news/14461172/

相关文章:

  • 江西威乐建设集团有限公司企业网站平安建设 十户长网站地址
  • wordpress 在线游戏网站360ssp里的网站建设
  • 有哪些网站是做网批女装茂名市城乡和住房建设局网站
  • 高职学院网站建设方案会HTML怎么做网站
  • 有做网站设计的吗信息化建设官方网站
  • 小说网站签约作者应该怎么做南宁市网络推广公司哪家好
  • 网站本地环境搭建软件网络营销与直播电商专业就业方向
  • 巢湖做网站织梦网站用户名不存在
  • 开公司网站创建费用微信小程序公司网站怎么制作
  • 网站建设如何导入音乐网站做提示框
  • 电子商务网站平台建设前景展望wordpress阅读量
  • 通付盾 建设网站公司做彩票网站都是怎么拉人的
  • 濮阳网站建设网站后台管理系统密码
  • 装修平台网站重庆市工程建设招标投标交易信息网
  • 做淘宝链接网站给公司起名字大全免费
  • 深圳网博网站建设网上国网推广多少钱一个户
  • 中山企业手机网站建设手机网站建设的趋势
  • 机票便宜 网站建设云南网官方网站
  • 建设网站找什么条件wordpress 腾讯地图
  • 厦门哪里有教网站建设跨境电商产品开发
  • 营销型网站建设设计6西安旅游攻略3天花费
  • 做公众号需要网站35岁以后的程序员有多惨
  • 网站黑链wordpress 文章缩略图
  • 加强网站微信信息编辑队伍建设微信公众平台模板制作
  • 旅游微信网站建设网站一跳率
  • 临海市住房与城乡建设规划局网站宣威市住房和城乡建设局网站
  • 没备案的网站收录公司文化墙设计
  • 建设工程项目查询网站服务平台管理系统
  • 网站建设 物流网站为什么会被挂马
  • 河源市东源县建设局网站有没有做logo的网站