2013-07-23 47 views
3

我以前發佈過關於我的努力讓Google地圖在WebView中顯示的工作。我發現我需要安裝OpenSSL,以便HTTPS可以用於某些Google API。如何在Qt中設置應用程序範圍的代理設置?

這一切都很好,但現在在不同的機器上,我正在配置Qt來使用系統代理。對於這一個,我們有一個不需要認證的系統代理,一個代理。默認代理是需要認證的代理。

我有以下代碼指定代理:

#include <QtGui/QGuiApplication> 
#include "qtquick2applicationviewer.h" 
#include <QNetworkProxy> 

int main(int argc, char *argv[]) 
{ 
    QGuiApplication app(argc, argv); 

    QNetworkProxy proxy; 
    proxy.setType(QNetworkProxy::HttpProxy); 
    proxy.setHostName("url.of.proxy.not.requiring.authentication"); 
    proxy.setPort(8080); 
    QNetworkProxy::setApplicationProxy(proxy); 

    QtQuick2ApplicationViewer viewer; 
    viewer.setMainQmlFile(QStringLiteral("qml/Maps/main.qml")); 
    viewer.showExpanded(); 

    return app.exec(); 
} 

當我運行該應用程序我得到的WebView其內容的狀態,因爲代理服務器需要身份驗證和代理有錯誤407上顯示的網頁在這個頁面中指定的地址是默認的地址,而不是我明確告訴Qt使用的地址。

我怎樣才能讓Qt使用我希望它使用的實際代理?這臺機器上的所有其他應用程序都可以使用它,那麼爲什麼不Qt?

+0

我面臨同樣的問題。你有任何解決方案? – RajaRaviVarma

回答

2

顯然QML WebView不使用Qt代理設置。我不知道這是否是預期的行爲,或者它已經破裂。嘗試按照this discussion中的建議設置http_proxy環境變量。

相關問題