0
いくつかの理由で私のリクエストごとに自分のDNSを変更したい!私はQt 5.3とQtWebkitを使用しています!私は検索しますが、私は私を助けることができる何かを見つけることができません!
QDnsLookupはQtWebkitにload()関数を設定して特定のルックアップを使用させることはできず、最後にはシステムのDns設定を使用します。
システム設定のないQtWebkitのカスタムDNS設定
いくつかの理由で私のリクエストごとに自分のDNSを変更したい!私はQt 5.3とQtWebkitを使用しています!私は検索しますが、私は私を助けることができる何かを見つけることができません!
QDnsLookupはQtWebkitにload()関数を設定して特定のルックアップを使用させることはできず、最後にはシステムのDns設定を使用します。
システム設定のないQtWebkitのカスタムDNS設定
あなた自身をQNAMサブクラスとQWebPageサブクラスを作成してください。そこにDNSリゾルバを実装します。次に、作成するQWebPageごとに設定します。この方法で、WebKitで何が起きるかを完全にネットワークで制御できます。 すべてのWebPagesがQNAMになるようにするには、サブクラスQWebViewも作成し、QWebPageサブクラスをコンストラクタのページとして設定します。オーバーロードcreateWindowも機能しますので、新しいQWebViewページ(ポップアップのようなもの)がQWebViewサブクラスとして作成されます。
YourWebView::YourWebView(QWidget *parent):QWebView(parent)
{
this->setPage(new YourWebPageSubclass());
...
QWebView * YourWebView::createWindow(QWebPage::WebWindowType type)
{
YourWebView * view = Q_NULLPTR;
switch(type)
{
case QWebPage::WebBrowserWindow:
view = new YourWebView(0);
break;
case QWebPage::WebModalDialog:
view = new YourWebView(0);
view->setWindowModality(Qt::ApplicationModal);
break;
}
return view;
}
YourWebPageSubclass::YourWebPageSubclass(QObject *parent):QWebPage(parent)
{
this->setNetworkAccessManager(new YourQNAM(this));
...
ここで、実際にDNSを実装していますか。 – Iman
あなたは[createRequest](http://doc.qt.io/qt-5/qnetworkaccessmanager.html#createRequest)保護された関数をオーバーライドし、[QNetworkRequestパラメータ](http:// doc)を操作することで、QNetworkAccessManagerサブカルalsでこれを行う必要があります.qt.io/qt-5/qnetworkrequest.html)あなた自身の – Xplatforms
とホストアドレスを交換すると、私のために簡単なものを書くことができますか、リンクやサイトはどうですか? – Iman