一連の試行が失敗したため、Qt 5.1 を使用して、 Pastebin Web サイトのメイン ページへの単純な GET 要求を試行するようになりました。
typedef void (QNetworkReply::*ReplyError)(QNetworkReply::NetworkError);
int main(int argc, char *argv [])
{
QCoreApplication app(argc, argv);
QNetworkAccessManager manager;
QNetworkRequest request(QUrl("http://www.pastebin.com"));
QNetworkReply * reply = manager.get(request);
QObject::connect(reply, &QNetworkReply::finished, [reply] {
qDebug() << reply->readAll();
});
QObject::connect(reply, static_cast<ReplyError>(&QNetworkReply::error),
[reply](QNetworkReply::NetworkError code) {
qDebug() << "Error code : " << code;
qDebug() << "Reply : " << reply->readAll();
qDebug() << "Error string : " << reply->errorString();
qDebug() << "HTTP status : " << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
});
return app.exec();
}
しばらくすると、コンソールに次のように出力されます。
Error code : 99
Reply : ""
Error string : "Connection timed out"
HTTP status : 0
また、彼らのウェブサイトから 10 分間 IP 禁止されることもわかりました (VPN の場所を変更しない限り、ブラウザを使用してウェブサイトにアクセスできません)。
Pythonで同じリクエストを試してみましたが、うまくいきました。
ここで何が問題ですか?問題は Qt または Pastebin から発生していますか?
編集 :
Qt 4.8.5で試しました。同じ結果が得られました。
編集2:
ほぼ 2 か月後に同じバージョンのフレームワークを試してみたところ、現在は機能しています。彼らはパスビンのウェブサイトで何かを修正したと思います...