PyQt4:从rawHeaderList中提取值

1 投票
1 回答
837 浏览
提问于 2025-04-16 15:54

我想通过 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 的文档,特别是 rawHeaderrawHeaderListheader 以及其他方法。

编辑说明:我已经更新了这个例子,使其与旧版本的 Qt/PyQt(4.7 之前)兼容。

撰写回答