import json
import sys
from PyQt5.QtCore import QObject, QUrl, QByteArray
from PyQt5.QtNetwork import QNetworkAccessManager,QNetworkRequest
class HttpReq(QObject):
def __init__(self):
QObject.__init__(self)
self.onSuccess = None
self.onFailed = None
self.m_netAccessManager = QNetworkAccessManager(self)
self.m_netReply = None
def request(self,httpUrl,sendData,on_success,on_fail):
if self.m_netReply is not None:
self.m_netReply.disconnect()
self.onSuccess = on_success
self.onFailed = on_fail
self.onJsonParams = jsonParams
req = QNetworkRequest(QUrl(httpUrl))
req.setHeader(QNetworkRequest.ContentTypeHeader,"application/x-www-form-urlencoded")
senda = QByteArray()
senda.append(self.convertDict(sendData))
print("="*200)
print("url:",httpUrl)
print("data:",sendData)
print("=" * 200)
self.m_netReply = self.m_netAccessManager.post(req,senda)
self.m_netReply.readyRead.connect(self.readData)
self.m_netReply.error.connect(self.requesterr)
def readData(self):
recvData = self.m_netReply.readAll()
print(recvData)
data = str(bytes(recvData.data()), encoding="utf-8")
try:
result = json.loads(data)
self.onSuccess(result)
except Exception as err:
self.onFailed(err)
def requesterr(self,err):
print(err)
def convertDict(self,dict):
print(dict)
str = ""
index = 1
for key,value in dict.items():
if index == len(dict):
str = str + '%s%s%s' % (key, '=', value)
else:
str = str + '%s%s%s%s' % (key, '=', value,'&')
index += 1
print(str)
return str
if __name__ == '__main__':
from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)
http = HttpReq()
def onSucc(data):
print("succc",data)
def onFail(data):
print("fail",data)
data = {"account":"tester11","password":"12113456"}
http.convertDict(data)
http.request("http://www.xxxxx.com/api/account/login",data,onSucc,onFail)
app.exec_()
PyQt http Post 请求数据
猜你喜欢
转载自blog.csdn.net/xzpblog/article/details/79049408
今日推荐
周排行