PyQtを使用してhttp GETリクエストを送信します。PyQtでhttpリクエストを送信するには?
私の研究にもかかわらず、私はPythonでのその単純な操作の例は見つかりませんでした。
私はいくつかのコード(コメントにBakuriuのヒントに基づいて修正しました)がありましたが、うまくいきません。私がFacebookのWebページにリクエストをして、そのページのHTMLコンテンツであるべき答えを印刷したいとしましょう。
from PyQt4 import QtCore, QtNetwork, QtCore, QtGui
from PyQt4.QtCore import *
import sys
from functools import partial
def printContent():
answerAsText = QString(replyObject.readAll())
print answerAsText
app = QtCore.QCoreApplication(sys.argv)
url = QtCore.QUrl("http://www.facebook.com")
request = QtNetwork.QNetworkRequest()
request.setUrl(url)
manager = QtNetwork.QNetworkAccessManager()
replyObject = manager.get(request)
replyObject.finished.connect(printContent)
sys.exit(app.exec_())
これはエラーを発生させず、何も印刷しません。 問題の原因はわかりません: リクエストが間違っていますか? それは後で返信オブジェクトを処理する方法ですか?
なぜ機能しないのですか?誰かが私に機能しているコードを表示してもらえますか?
'QNetworkReply'は' QIODevice'なので、[readData'と 'readLineData'](http://doc.qt.io/qt-5/qiodevice.html#protected-functions)メソッドを提供します。 – Bakuriu
ええ、私はすでにその方向で検索しました。しかし、私はそれがどのように機能するのか分かりません。すべての関数(read、readAll、readData、readLine)はQByteArraysを返します。私はそれらをどうするべきか分かりません。 + readDataは、私が得ることのできないint引数をとります。このオブジェクトをどのように扱うかについて、もう少し詳しく教えてください。 –
'QByteArray'は単なるテキストです。あなたがテキストとしてそれをしたいならば、単に 'text = QString(data)'を実行することができます。 – Bakuriu