HTTP請求工具是一個開發(fā)小工具-HTTP請求測試工具,僅支持GET、POST請求2中方式, 請求BODY僅支持 JSON字符串。相信很多從事前端開發(fā)的人都可能會知道這類軟件,它可以幫助我們很好的實現(xiàn)端口調(diào)試工作。
軟件說明
做網(wǎng)站開發(fā)時,經(jīng)常需要發(fā)送請求來測試自己的代碼是否OK,這時候模擬發(fā)送http請求的工具就起到了很大的作用。
pyqt5.py代碼說明
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
from Ui_pyqt5 import Ui_MainWindow
from PyQt5.QtCore import QCoreApplication
import requests
import json
class MainLogic(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
# 繼承父類
super(MainLogic, self).__init__()
# 構(gòu)造UI
self.setupUi(self)
# 按鈕點擊事件
def btnClick(self):
url = self.txt_url.toPlainText() # 獲取請求URL
request_type = self.request_type.currentText()
request_params = self.request_body.toPlainText() # 獲取請求body
request_headers = self.request_header.toPlainText().split("\n") # 獲取請求request
params = {}
headers = {
"content-type": "application/x-www-form-urlencoded;",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
}
try:
# 請求header
for h in request_headers:
if h =='' or h[0 : h.find(":")] =='' or h[0 : h.find(":")].lower() == 'content-length':
continue
headers[h[0 : h.find(":")]] = h[ h.find(":")+1 :].strip()
if request_params:
params = json.loads(request_params)
if url =='' :
return True
# 判斷是否HTTP HTTPS開頭
if url[0:7] !='http://' and url[0:8] != 'https://':
url = "http://" + url
if request_type == 'GET':
result = requests.get(url, headers = headers, data = params )
elif request_type =='POST':
result = requests.post(url, headers = headers, json = params )
else:
return True
result.encoding = result.apparent_encoding
# 獲取返回內(nèi)容
outputText = result.text
# 返回格式為JSON時,格式化輸出
if result.headers['Content-Type'].find("application/json") > -1:
outputText = json.dumps(result.json(), sort_keys=False, indent=4, separators=(', ', ': ') ,ensure_ascii =False)
# 輸出結(jié)果到UI
self.response.setPlainText( outputText )
self.respon_code.setText(str(result.status_code))
except Exception as ex:
self.respon_code.setText("")
self.response.setPlainText("請求ERROR:" + str(ex) )
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv )
# QApplication.setQuitOnLastWindowClosed(False)
main = MainLogic()
main.show()
sys.exit(app.exec_())