Post QWebEngineHttpRequest (PyQt5) 请求
Post request by QWebEngineHttpRequest (PyQt5)
我对在 PyQt5 中发出 POST 请求有疑问。
不幸的是 Python 这个框架的官方文档不存在。我必须将文档从 C++ 翻译成 Python.
我无法处理它。要发出 POST 请求,我必须创建 class QWebEngineHttpRequest
(docs), and then add POST data by setPostData()
, it looks to be easy, but that method requires a parameter in type QByteArray
(docs) 的实例,这是一个问题,因为我不知道如何向其中插入数据。
我知道我迟到了,但我希望它能帮助遇到同样问题的其他人。这是我的做法:
def postRequest(self):
self.url = QUrl()
self.req = QWebEngineHttpRequest()
self.url.setScheme("http")
self.url.setHost("Whosebug")
self.url.setPath("/something/somethingelse")
self.req.setUrl(self.url)
self.req.setMethod(QWebEngineHttpRequest.Post)
self.req.setHeader(QByteArray(b'Content-Type'),QByteArray(b'application/json'))
params = {"something": value, "test": True, "number": 5}
self.req.setPostData(bytes(json.dumps(params), 'utf-8'))
return self.req
我对在 PyQt5 中发出 POST 请求有疑问。 不幸的是 Python 这个框架的官方文档不存在。我必须将文档从 C++ 翻译成 Python.
我无法处理它。要发出 POST 请求,我必须创建 class QWebEngineHttpRequest
(docs), and then add POST data by setPostData()
, it looks to be easy, but that method requires a parameter in type QByteArray
(docs) 的实例,这是一个问题,因为我不知道如何向其中插入数据。
我知道我迟到了,但我希望它能帮助遇到同样问题的其他人。这是我的做法:
def postRequest(self):
self.url = QUrl()
self.req = QWebEngineHttpRequest()
self.url.setScheme("http")
self.url.setHost("Whosebug")
self.url.setPath("/something/somethingelse")
self.req.setUrl(self.url)
self.req.setMethod(QWebEngineHttpRequest.Post)
self.req.setHeader(QByteArray(b'Content-Type'),QByteArray(b'application/json'))
params = {"something": value, "test": True, "number": 5}
self.req.setPostData(bytes(json.dumps(params), 'utf-8'))
return self.req