PyQt:为什么带有JSON数据的sendind补丁请求返回null字符串?

2024-09-28 05:22:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下代码发送修补程序请求:

self.sendurl = QtCore.QUrl("http://"+ server + ":" + port + "/path/" + str(i['id']))
self.rdata = {'status': 'online'}
self.rdata = json.dumps(self.rdata)

self.request = QtNetwork.QNetworkRequest()
self.manager = QtNetwork.QNetworkAccessManager()
self.request.setUrl(self.sendurl)
self.request.setHeader(0, 'application/json')
self.rdata = bytes(self.rdata, 'UTF-8')
self.data = QtCore.QByteArray(self.rdata)

self.buffer = QtCore.QBuffer()

self.buffer.open(QtCore.QBuffer.ReadWrite)
self.buffer.writeData(self.data)
self.buffer.seek(0)

self.patchbytes = bytes('PATCH', 'UTF-8')
self.patchverb = QtCore.QByteArray(self.patchbytes)
self.response = QtCore.QByteArray()
self.response = self.manager.sendCustomRequest(self.request, self.patchverb, self.buffer)


self.response = self.response.readAll().data().decode('utf-8')
self.response = str(self.response)
print(self.response)
self.response = json.loads(self.response)

正常响应包含这样的JSON对象:{'status':'online', 'request':'ok'}。但我明白了:

我想我只是发送了一个错误的请求,但我不明白它有什么问题。有人能帮我吗?在


Tags: selfjsondataresponserequestbufferstatusmanager
1条回答
网友
1楼 · 发布于 2024-09-28 05:22:40

好吧,我找到了问题的答案。我只需要等待请求完成。在

在这条线之后

self.response = self.manager.sendCustomRequest(self.request, self.patchverb, self.buffer)

应该有以下代码:

^{pr2}$

相关问题 更多 >

    热门问题