通过QWebEngineHttpRequest(PyQt5)发布请求

时间:2018-08-04 13:44:04

标签: python qt pyqt pyqt5 qwebengineview

我对在PyQt5中发出POST请求有疑问。 不幸的是,该Python框架的官方文档不存在。我必须将文档从C ++转换为Python。

我在处理它时遇到问题。要发出POST请求,我必须创建类QWebEngineHttpRequestdocs)的实例,然后通过setPostData()添加POST数据,这看起来很简单,但是该方法需要类型为参数的QByteArraydocs),这是一个问题,因为我不知道如何在其中插入数据。

1 个答案:

答案 0 :(得分:3)

我知道我来晚了,但是我希望它可以帮助遇到同样问题的其他人。这是我的操作方式:

def postRequest(self):
    self.url = QUrl()
    self.req = QWebEngineHttpRequest()

    self.url.setScheme("http")
    self.url.setHost("stackoverflow")
    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