4 votes

Comment puis-je définir les paramètres du proxy de l'application dans Qt ?

J'ai déjà publié un article sur mes efforts pour faire en sorte que Google Maps s'affiche en WebView. J'ai découvert que je devais installer OpenSSL pour que HTTPS puisse être utilisé pour certaines des API de Google.

Tout cela est bien beau, mais maintenant, sur une autre machine, j'ai du mal à configurer Qt pour utiliser le proxy du système. Pour celui-ci, nous avons un proxy système qui ne nécessite pas d'authentification et un autre qui en nécessite une. Le proxy par défaut est celui qui nécessite une authentification.

J'ai le code suivant pour spécifier le proxy :

#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();
}

Lorsque j'exécute cette application, j'obtiens une page Web affichée dans WebView dont le contenu indique qu'il y a une erreur 407 parce que le proxy nécessite une authentification et que l'adresse du proxy spécifiée dans cette page est celle par défaut et non celle que je demande explicitement à Qt d'utiliser.

Comment puis-je faire en sorte que Qt utilise le proxy réel que je veux qu'il utilise ? Toutes les autres applications sur cette machine peuvent l'utiliser, alors pourquoi pas Qt ?

2voto

Pavel Strakhov Points 17852

Apparemment, QML WebView n'utilise pas les paramètres de proxy de Qt. Je ne sais pas si c'est le comportement attendu ou si c'est simplement cassé. Essayez de définir http_proxy comme suggéré dans cette discussion .

0voto

Yvain Points 145

Ce code doit être passé à l'intérieur du premier objet Qt appelé comme suit QMainWindow o QWidget à l'intérieur du constructeur est un bon choix.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X