Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Unsolved Setting User And Password For Qt WebView & WebEngine Diectly

    General and Desktop
    3
    10
    1582
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      shahriar25 last edited by

      Hi. I wanted to set user and password for Qt WebView & WebEngine directly. I have my own VPS and I have setup HttpProxy on it. My application has a web browser and I want that web browser to use the http proxy. I've tried setting application proxy but the web view raises a dialog asking for user and password. I want to set user and password in the code so that users won't have to deal with the dialog.

      1 Reply Last reply Reply Quote 0
      • S
        shahriar25 last edited by

        Any Ideas?

        1 Reply Last reply Reply Quote 0
        • Pablo J. Rogina
          Pablo J. Rogina last edited by

          @shahriar25 are you talking about user/password for a proxy, so your QWebView application can traverse such proxy, which requires authentication, and reach the desired destination?
          If so, I imagine you may need to rely on using a QNetworkProxyFactory that once configured properly (for instance, to use the system proxy's settings) is then set to the QNetworkAccessManager that makes the connection

          Upvote the answer(s) that helped you solve the issue
          Use "Topic Tools" button to mark your post as Solved
          Add screenshots via postimage.org
          Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

          1 Reply Last reply Reply Quote 1
          • S
            shahriar25 last edited by shahriar25

            @Pablo-J-Rogina
            Hi
            Thank you for replying and helping.
            I tried using QNetworkProxyFactory:

            class ProxyFactory : public QNetworkProxyFactory
            {
            public:
            QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query)
            {
            Q_UNUSED(query)

            	QNetworkProxy proxy;
            
            	proxy.setType(QNetworkProxy::HttpProxy);
                        // set proxy variables here
            
            	return QList<QNetworkProxy>() << proxy;
            }
            

            };

            and then:
            QNetworkProxyFactory::setApplicationProxyFactory(new ProxyFactory());

            but this doesn't work. I mean it proxies QNetworkAccessManager and stuff but it is not what I want.
            I want the webview to use this proxy and not raise a dialog and ask the user for credentials.

            1 Reply Last reply Reply Quote 0
            • Pablo J. Rogina
              Pablo J. Rogina last edited by

              @shahriar25 maybe the trick here is that QWebPage within your QWebView is using its own QNetworkAccessManager, so perhaps by doing:

              myWebView->page()->setNetworkAccessManager(yourQNAM)
              

              will cause the webview to use your QNAM with your proxy settings.

              Upvote the answer(s) that helped you solve the issue
              Use "Topic Tools" button to mark your post as Solved
              Add screenshots via postimage.org
              Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

              1 Reply Last reply Reply Quote 0
              • S
                shahriar25 last edited by

                @Pablo-J-Rogina
                Well see that is the problem. I'm working with qml and using webview in it

                1 Reply Last reply Reply Quote 0
                • Pablo J. Rogina
                  Pablo J. Rogina last edited by

                  @shahriar25 are you saying you're using this QML WebView component? If so, on one side you should have stated your issue better :-) and you may need to work with the underlying QNetworkAccessManager of QML, see this post as a guideline.

                  Upvote the answer(s) that helped you solve the issue
                  Use "Topic Tools" button to mark your post as Solved
                  Add screenshots via postimage.org
                  Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                  1 Reply Last reply Reply Quote 1
                  • S
                    shahriar25 last edited by shahriar25

                    @Pablo-J-Rogina
                    Hi. I'm sorry for late reply
                    I'm sorry if I left out using qml. It wasn't intentional
                    I tried this:

                    class QmlNAMFactory : public QQmlNetworkAccessManagerFactory
                    {
                    virtual QNetworkAccessManager *create(QObject *parent)
                    {
                    QNetworkAccessManager *nam = new QNetworkAccessManager(parent);
                    QNetworkProxy proxy;

                    	proxy.setType(QNetworkProxy::HttpProxy);
                                // proxy info here
                    
                    	nam->setProxy(proxy);
                    	return nam;
                    }
                    

                    };

                    QQmlApplicationEngine engine;
                    engine.setNetworkAccessManagerFactory(new QmlNAMFactory);

                    but this has no effect on webview. It doesn't change a thing
                    I'm sorry the function was returning nullptr I edited it. I did that just to text the effect

                    1 Reply Last reply Reply Quote 0
                    • S
                      shahriar25 last edited by

                      Isn't there anything that I can do?

                      1 Reply Last reply Reply Quote 0
                      • i.n.g.o.
                        i.n.g.o. last edited by

                        Hi.

                        Did you solve the problem?

                        I am hitting the same problem, i need to set a header to every QML WebView request.

                        Setting the network access manager on QQmlApplicationEngine does not call MyNetworkAccessManagerFactory::create.
                        Seems WebView is not using QNetworkAccessManager at all.

                        Is this possible at all?

                        thanks for hints.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post