2013-04-15 97 views
0

我絕對是QtNetwork模塊的新手,這裏有一個簡單的問題。 爲什麼在這裏使用reply.rawHeaderPairs()== []? 有什麼問題嗎?QNetworkAccessManager:爲什麼在這裏使用reply.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() 

回答

0

這是因爲你的get請求還沒有真正完成。所以沒有實際看到的標題數據。

QNetworkReply::get()不是阻塞函數調用。由manager.get()返回的QNetworkReply對象會通過它發出的各種signals實時完成get請求。