1

ユーザー エージェントを追加して QHTTP リクエストを送信する

C:\Python33\Lib\site-packages\PyQt4\examples\network\http に例があります

しかし、 http リクエストに User-Agent ヘッダーを追加したいので、コメントしました

##        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())

ここに質問があります。ヘッダーをサーバーに追加してこのリクエストを送信する方法がわかりませんか?

PSドキュメントを参照しましたが、おそらく見つかりました

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

この質問を解決するのに役立ちますが、この場合、「データ」は何になるのでしょうか?

4

1 に答える 1

1

a を使用し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_())
于 2013-04-12T22:16:42.473 に答える