Visual C++ 2008 SP1でWindows 7にQt SDK 1.1.4をクリーンインストールします。私はQt Creatorを使用しています。なぜこのコードはいくつかのWebページを読み込まないのですか?QWebView/Qt WebKitは一部のSSLページを開きません。リダイレクトは許可されていませんか?
#include <QtGui/QApplication>
#include <QtWebKit/QWebView>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWebView b;
b.load(QUrl("https://gmail.com")); // doesn't work
//b.load(QUrl("https://accounts.google.com")); // works
//b.load(QUrl("https://google.com")); // doesn't work
//b.load(QUrl("https://www.google.com")); // works
b.show();
return a.exec();
}
なぜ一部のURLは機能しないのですか?
私はgoogle.com/www.google.comが特にそうだと思います。 google.comは通常、www.google.comにリダイレクトされます。また、gmail.comからaccounts.google.comにリダイレクトされています。 WebKitは安全なページのリダイレクトを許可していませんか?もしそうなら、それを修正する方法は?
ところで、Qt SDK 1.1.4にはOpenSSLが含まれているようです。私はC:\ QtSDK \ Desktop \ Qt \ 4.7.4 \ msvc2008 \ bin \ ssleay32.dllにその存在を気づいた。また、一部のページが動作するように見えます。
EDIT:つ以上のURL:
再びb.load(QUrl("https://support.motionview3d.com/help/_media/images/directory.png")); // doesn't work
b.load(QUrl("https://mail.google.com")); // works
、他のWebブラウザでこれらの作業罰金の両方。
何が混乱していますか?ここには2つの可能性があるようです:(1)HTTP仕様では、リダイレクトやその他の特別なケースで不正な証明書が許可されますが、Qtにバグがあり、最初はリダイレクトへのアクセスを拒否しています。または(2)Google管理者は間違いを犯しましたが、Internet Explorer、FireFox、Chrome、その他の主要ブラウザに重大なセキュリティホールがあるため、気付かなかった。何が起きてる? –
Qtは平均的なWebブラウザよりもSSLエラーの許容度が低いと思われます。私が本当に気にしているサーバーのWebマスターは、サーバーに中間証明書をインストールしていないことが判明しました。http://www.sslshopper.com/ssl-certificate-not-trusted-error.html(最後のオプションを参照) –
これを '' examples/network/securesocketclient'''と組み合わせて、これらのエラーをuiに表示することもできます。 –