PyQt4:从rawHeaderList中提取值
我想通过 QNetworkReply
来读取 rawHeaderList
中的头部信息,应该怎么做呢?我尝试过循环读取,但系统提示 QNetworkReply
对象不能被循环遍历,简单打印出来的结果是 <PyQt4.QtNetwork.QNetworkReply object at 0x1837958>
。
这是我的代码
...
request = QNetworkRequest(QUrl('http://www.kg'))
manager = QNetworkAccessManager()
reply = manager.get(request)
'''
How to get the list of headers?
'''
Sultan
1 个回答
2
有很多方法可以做到这一点。你可以使用 reply.rawHeaderPairs()
,比如:
import pprint, sys
from PyQt4 import QtCore, QtNetwork
app = QtCore.QCoreApplication(sys.argv)
request = QtNetwork.QNetworkRequest(QtCore.QUrl("http://stackoverflow.com"))
manager = QtNetwork.QNetworkAccessManager()
reply = manager.get(request)
while not reply.isFinished():
app.processEvents()
try:
# for Qt 4.7 and higher:
pprint.pprint(reply.rawHeaderPairs())
except AttributeError:
# for Qt < 4.7:
for header in reply.rawHeaderList():
pprint.pprint((header, reply.rawHeader(header)))
另外,可以查看 QNetworkReply
的文档,特别是 rawHeader
、rawHeaderList
、header
以及其他方法。
编辑说明:我已经更新了这个例子,使其与旧版本的 Qt/PyQt(4.7 之前)兼容。