2013-04-12 43 views
1
與用戶代理

發送QHTTP請求加入發送QHTTP請求加入

有C中的例子:\ Python33 \ LIB \站點包\ PyQt4的\例子\網絡\ HTTP

但我要User-Agent頭添加到HTTP請求的,所以我評論

##  self.httpGetId = self.http.get(path, self.outFile) 

,寫下面的代碼

header = QtNetwork.QHttpRequestHeader("GET", path)#1 
header.setValue("Host", url.host()) 
header.setValue('User-Agent' ,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17') 

self.http.setHost(url.host()) 

那麼這裏是問題,我不知道如何發送這個請求與頭添加到服務器?

P.S. 我提到的文件,或許

int QHttp::request (const QHttpRequestHeader & header, QIODevice * data = 0, QIODevice * to = 0) 

發現會來幫我解決這個問題,但我不知道「數據」應該是在這種情況下?

回答

1

使用QNetworkAcessManager發送請求,這樣的事情:

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 

from PyQt4 import QtCore, QtNetwork 

if __name__ == '__main__': 
    import sys 

    print "Starting request...", 

    app = QtCore.QCoreApplication(sys.argv) 
    url = QtCore.QUrl("http://www.example.com/") 

    request = QtNetwork.QNetworkRequest() 
    request.setUrl(url) 
    request.setRawHeader("User-Agent", "MyAppName/1.0 (Nokia; Qt)") 

    manager = QtNetwork.QNetworkAccessManager() 
    manager.finished.connect(app.quit) 
    manager.get(request) 

    print "done." 

    sys.exit(app.exec_()) 
+1

感謝,現在的工作! – iMath