QNetworkAccessManager:为什么在这里回复.rawHeaderPairs()== []?

时间:2013-04-15 06:44:23

标签: qt pyqt pyside

我绝对是QtNetwork模块的新手,这是一个简单的问题。 为什么在这里回复.rawHeaderPairs()== []? 有什么问题吗?

import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtNetwork  import *


if __name__ == '__main__':


    app =QCoreApplication(sys.argv)

    manager=QNetworkAccessManager ()
    url =input('input url :')

    print(QUrl.fromEncoded(QUrl(url).toEncoded()))
    request=QNetworkRequest (QUrl.fromEncoded(QUrl(url).toEncoded()))


    request.setRawHeader("User-Agent" ,'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1')
    reply = manager.get(request)

    print(reply.rawHeaderPairs () )
    sys.exit()

1 个答案:

答案 0 :(得分:0)

这是因为您的get请求实际上尚未完成。因此,实际上没有标题数据。

QNetworkReply::get()不是阻塞函数调用。 QNetworkReply返回的manager.get()对象会在get请求通过其发出的各种signals实际完成时通知您。