UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Python get HTTP

    Scheduled Pinned Locked Moved Solved App Development
    2 Posts 1 Posters 397 Views 1 Watching
    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.
      • pavelprostoP Offline
        pavelprosto
        last edited by

        I am trying to accessing web resources.
        Main.qml

        import QtQuick 2.7
        import Ubuntu.Components 1.3
        //import QtQuick.Controls 2.2
        import QtQuick.Layouts 1.3
        import Qt.labs.settings 1.0
        import io.thp.pyotherside 1.3
        
        MainView {
            id: root
            objectName: 'mainView'
            applicationName: 'example-web.yourname'
            automaticOrientation: true
        
            width: units.gu(45)
            height: units.gu(75)
        
            Page {
                anchors.fill: parent
        
                header: PageHeader {
                    id: header
                    title: i18n.tr('Example Web')
                }
        
                Label {
                    id: label1
                    anchors {
                        top: header.bottom
                        left: parent.left
                        right: parent.right
                        bottom: parent.bottom
                    }
                    text: 'Get Web'
                    verticalAlignment: Label.AlignVCenter
                    horizontalAlignment: Label.AlignHCenter
                }
            }
        
            Python {
                id: python
                Component.onCompleted: {
                    addImportPath(Qt.resolvedUrl('../src/'));
        
                    importModule('example', function() {
                        python.call('example.speak',[], function(returnValue) {
                            console.log(returnValue);
                            label1.text=returnValue;
                        })
                    });
                }
        
                onError: {
                    console.log('python error: ' + traceback);
                }
            }
        }
        
        

        example.py

        import urllib.request
        import urllib3
        
        def speak():
          try:
            source = urllib.request.urlopen("http://webcode.me")
          except Exception as e:
            return str(e)
          else:
            html_bytes = source.read()
            html_str = html_bytes.decode("utf8")
            source.close()
            return html_str
        
        def speak2():
          http = urllib3.PoolManager()
          try:
            source = http.request('GET', 'http://webcode.me')
          except Exception as e:
            return str(e)
          else:
            html_str = source.data.decode('utf-8')
            return html_str
        

        Both examples work on a computer(clickable desktop), but when I run them on a phone, I get errors:
        on urllib:

        <urlopen error [Errno -3] Temporary failure in name resolution>
        

        on urllib3:

        HTTPConnectionPool(host='webcode.me', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xa8111390>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
        

        How can fix it? =( Help me please.

        Your donations help me to continue programming free and openSource application development https://liberapay.com/pavelprosto/

        1 Reply Last reply Reply Quote 0
        • pavelprostoP Offline
          pavelprosto
          last edited by

          Find the * .apparmor file in the project folder.
          Add permissions:

          {
              "policy_groups": [
                  "content_exchange",
                  "content_exchange_source",
                  "networking",
                  "webview"
              ],
              "policy_version": 16.04
          }
          

          After that the program will work

          Your donations help me to continue programming free and openSource application development https://liberapay.com/pavelprosto/

          1 Reply Last reply Reply Quote 0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • First post
            Last post