实现效果:
import sys
from postmantest import Ui_Form
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import *
import requests,json,urllib3
class MyClass(QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.InitUi()
def InitUi(self):
self.setupUi(self)
self.setWindowTitle("http接口测试专用软件")
self.show()
self.i=1
self.pushButton_2.clicked.connect(self.addheaders)
self.pushButton_3.clicked.connect(self.deleteheaders)
self.pushButton.clicked.connect(self.httprequest_get)
self.pushButton_4.clicked.connect(self.clearResult)
self._translate = QtCore.QCoreApplication.translate
self.comboBox.activated.connect(self.combox_currenttext)
self.txt = QtWidgets.QTextEdit()
def combox_currenttext(self):
self.comboBox.currentText()
print(self.comboBox.currentText())
def addheaders(self):
self.i += 1
self.tableWidget.setRowCount(self.i)
def deleteheaders(self):
if self.i>0:
self.i -= 1
self.tableWidget.setRowCount(self.i)
else:
pass
def clearResult(self):
print('* clearResult ')
self.textEdit.clear()
self.lineEdit.clear()
self.textEdit_2.clear()
def httprequest_get(self):
headers={}
for m in range(self.i):
headersname=self.tableWidget.item(m,0).text()
headervalue=self.tableWidget.item(m,1).text()
headers[f'{headersname}']=f"{headervalue}"
tranmission=self.comboBox.currentText()
urldata=self.lineEdit.text()
try:
self.httptest_get(urldata,tranmission,headers)
except Exception as e:
print(e)
def httptest_get(self,urldata,tranmission,headers):
urllib3.disable_warnings()
response = requests.request(f"{tranmission}", f"{urldata}", headers=headers, verify=False)
result=json.dumps(response.json(), sort_keys=True, indent=2,ensure_ascii=False)
self.textEdit.setText(result)
def httprequest_post(self):
headers = {}
for m in range(self.i):
headersname = self.tableWidget.item(m, 0).text()
headervalue = self.tableWidget.item(m, 1).text()
headers[f'{headersname}'] = f"{headervalue}"
request_content =self.textEdit_2.toPlainText()
tranmission = self.comboBox.currentText()
urldata = self.lineEdit.text()
self.httptest_post(urldata, tranmission, headers,request_content)
def httptest_post(self, urldata, tranmission, headers,request_content):
urllib3.disable_warnings()
try:
response = requests.request(f"{tranmission}", f"{urldata}", headers=headers, data=request_content.encode('utf8') ,verify=False)
result = json.dumps(response.json(), sort_keys=True, indent=2,ensure_ascii=False)
self.textEdit.setText(result)
except Exception as e:
print(e)
if __name__ == '__main__':
app = QApplication(sys.argv)
mc = MyClass()
sys.exit(app.exec_())