示例#1
0
 def _wrap_request(self, request):
     req = QNetworkRequest(request)
     req_id = next(self._request_ids)
     req.setAttribute(self._REQUEST_ID, req_id)
     if hasattr(request, 'timeout'):
         req.timeout = request.timeout
     return req, req_id
示例#2
0
    def query(self, query):
        """
        Perform a nominatim query

        @param query: Query to execute
        @type query: str

        @raise NetWorkErrorException

        @return: the result of the query
        @rtype: str
        """

        url_query = QUrl(self.__url)

        query = QUrl.toPercentEncoding(query)
        url_query.addEncodedQueryItem('q', query)
        url_query.addQueryItem('info', 'QgisQuickOSMPlugin')

        request = QNetworkRequest(url_query)
        request.setRawHeader("User-Agent", "QuickOSM")
        self.network_reply = self.network.get(request)
        self.loop = QEventLoop()
        self.network.finished.connect(self._end_of_request)
        self.loop.exec_()

        if self.network_reply.error() == QNetworkReply.NoError:
            return json.loads(self.data)
        else:
            raise NetWorkErrorException(suffix="Nominatim API")
示例#3
0
 def download_file(self, url, path_file):
     """
     download function
     :param url: url path of file
     :param path_file: path to save file
     :return:
     """
     self.file_install = path_file
     self.url = url
     loop = QEventLoop()
     timer = QTimer()
     timer.setSingleShot(True)
     timer.timeout.connect(lambda: loop.exit(1))
     timer.start(100000)  # 10 second time-out
     # req = QNetworkRequest(QUrl('https://www.python.org/'))
     req = QNetworkRequest(QUrl(url))
     result = self.manager.get(req)
     result.finished.connect(lambda: self.fin_req(loop, result))
     self.print_('fetching request...', self.dbg)
     if loop.exec_() == 0:
         timer.stop()
         self.print_(
             '{} is received: {}'.format(os.path.basename(path_file),
                                         result.readAll().count()),
             self.dbg)
     else:
         self.print_('request timed-out')
示例#4
0
 def run(self):
     """
     Start the download
     :return: None
     """
     self.manager.get(QNetworkRequest(self.file))
     self.finished.emit()
示例#5
0
    def __sync_request(self, url):
        _url = QUrl(url)
        _request = QNetworkRequest(_url)
        self.__replies.append(_request)

        QgsNetworkAccessManager.instance().sslErrors.connect(
            self.__supress_ssl_errors)

        _reply = QgsNetworkAccessManager.instance().get(_request)

        # wait
        loop = QEventLoop()
        _reply.finished.connect(loop.quit)
        loop.exec_()
        _reply.finished.disconnect(loop.quit)
        QgsNetworkAccessManager.instance().sslErrors.disconnect(
            self.__supress_ssl_errors)
        loop = None

        error = _reply.error()
        if error != QNetworkReply.NoError:
            raise Exception(error)

        result_code = _reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)

        result = _reply.readAll()
        self.__replies.append(_reply)
        _reply.deleteLater()

        if result_code in [301, 302, 307]:
            redirect_url = _reply.attribute(
                QNetworkRequest.RedirectionTargetAttribute)
            return self.__sync_request(redirect_url)
        else:
            return result
    def __init__(self, iface, data, fallback=False):
        QObject.__init__(self)

        self.iface = iface
        self.canvas = self.iface.mapCanvas()
        self.fallback = fallback

        self.settings = QSettings("CatAIS", "GeoAdminSearch")

        mapServer = self.settings.value(
            "services/mapserver",
            "https://api3.geo.admin.ch/rest/services/api/MapServer")

        self.settings = QSettings("CatAIS", "GeoAdminSearch")
        searchLanguage = self.settings.value("options/language", "de")
        self.userName = self.settings.value("options/username", "")
        self.password = self.settings.value("options/password", "")

        self.layerName = data['layer']

        url = mapServer + "?searchText="
        url += self.layerName.strip()
        url += "&lang=" + searchLanguage

        # It does not work:
        # a) when networkAccess is not 'self'
        # b) without lambda
        self.networkAccess = QNetworkAccessManager()
        self.connect(
            self.networkAccess,
            SIGNAL("finished(QNetworkReply*)"),
            lambda event, data=data: self.receiveLayerMetadata(event, data))
        self.networkAccess.get(QNetworkRequest(QUrl(url)))
示例#7
0
    def request(self,
                iri,
                method="GET",
                extra_headers=None,
                oauth_credentials=None,
                post_content=None):
        """Return a deferred that will be fired with a Response object."""
        uri = self.iri_to_uri(iri)
        request = QNetworkRequest(QUrl(uri))
        request.setSslConfiguration(self.ssl_config)
        headers = yield self.build_request_headers(uri, method, extra_headers,
                                                   oauth_credentials)

        for key, value in headers.items():
            request.setRawHeader(key, value)

        post_buffer = QBuffer()
        post_buffer.setData(post_content)
        try:
            result = yield self._perform_request(request, method, post_buffer)
        except ProxyUnauthorizedError as e:
            app_proxy = QNetworkProxy.applicationProxy()
            proxy_host = app_proxy.hostName() if app_proxy else "proxy server"
            got_creds = yield self.request_proxy_auth_credentials(
                proxy_host, self.proxy_retry)
            if got_creds:
                self.proxy_retry = True
                result = yield self.request(iri, method, extra_headers,
                                            oauth_credentials, post_content)
            else:
                excp = WebClientError('Proxy creds needed.', e)
                defer.returnValue(excp)
        defer.returnValue(result)
示例#8
0
    def run(self):
        self.setStatusMessage("Downloading")
        self.info.setText(self.downloadmessage)

        target_dir = os.path.join(environ.buffer_dir, "serverfiles_pack_cache")

        try:
            os.makedirs(target_dir)
        except OSError:
            pass

        self.progressBarInit()

        req = QNetworkRequest(QUrl(self.downloadurl))
        self.reply = self.net_manager.get(req)
        self.reply.downloadProgress.connect(self._progress)
        self.reply.error.connect(self._error)
        self.reply.finished.connect(self._finished)
        self.reply.readyRead.connect(self._read)
        url = urlparse.urlsplit(self.downloadurl)
        self._tmpfilename = posixpath.basename(url.path)

        self._tmpfile = open(
            os.path.join(target_dir, self._tmpfilename), "wb+"
        )
示例#9
0
    def asyncGetLatestVersion(self, uuid, use_stats):

        url = self.getRequestUrl(uuid, use_stats)

        self.nam = QNetworkAccessManager()
        self.nam.finished.connect(self.asyncGetLatestVersionComplete)
        self.nam.get(QNetworkRequest(QUrl(str(url))))
示例#10
0
    def openUrl(self, address, op, settings):
        operation = op
        body = QByteArray()

        self.applySettings(settings)
        self.m_webPage.triggerAction(QWebPage.Stop)

        if type(op) is dict:
            operation = op.get('operation')
            body = QByteArray(op.get('data', ''))

        if operation == '':
            operation = 'get'

        networkOp = QNetworkAccessManager.CustomOperation
        operation = operation.lower()
        if operation == 'get':
            networkOp = QNetworkAccessManager.GetOperation
        elif operation == 'head':
            networkOp = QNetworkAccessManager.HeadOperation
        elif operation == 'put':
            networkOp = QNetworkAccessManager.PutOperation
        elif operation == 'post':
            networkOp = QNetworkAccessManager.PostOperation
        elif operation == 'delete':
            networkOp = QNetworkAccessManager.DeleteOperation

        if networkOp == QNetworkAccessManager.CustomOperation:
            self.m_mainFrame.evaluateJavaScript(
                'console.error("Unknown network operation: %s");' % operation)
            return

        self.m_mainFrame.load(QNetworkRequest(QUrl(address)), networkOp, body)
示例#11
0
    def open(self, address, method='get', headers={}, auth=None):
        """Opens a web page.

        :param address: The resource URL.
        :param method: The Http method.
        :param headers: An optional dict of extra request hearders.
        :param auth: An optional tupple of HTTP auth (username, password).
        :return: Page resource, All loaded resources.
        """
        body = QByteArray()
        try:
            method = getattr(QNetworkAccessManager,
                             "%sOperation" % method.capitalize())
        except AttributeError:
            raise Exception("Invalid http method %s" % method)
        request = QNetworkRequest(QUrl(address))
        request.CacheLoadControl(0)
        if not "User-Agent" in headers:
            headers["User-Agent"] = self.user_agent
        for header in headers:
            request.setRawHeader(header, headers[header])
        self._auth = auth
        self._auth_attempt = 0  # Avoids reccursion
        self.main_frame.load(request, method, body)
        self.loaded = False
        return self.wait_for_page_loaded()
示例#12
0
    def cbUserData(self, data):
        if 'error' in data:
            # TODO Create image for error
            self.nameLB.setText(
                "<html><head/><body><p><span style=\" text-decoration: underline; color:red;\">error</span></p></body></html>"
            )
            self.error.emit(data['error'])
            return

        self.currentUserData = data
        self.settings.setValue('/CartoDBPlugin/selected', self.currentUser)
        manager = QNetworkAccessManager()
        manager.finished.connect(self.returnAvatar)

        if 's3.amazonaws.com' in data['avatar_url']:
            imageUrl = QUrl(data['avatar_url'])
        else:
            imageUrl = QUrl('http:' + data['avatar_url'])

        request = QNetworkRequest(imageUrl)
        request.setRawHeader('User-Agent', 'QGIS 2.x')
        reply = manager.get(request)
        loop = QEventLoop()
        reply.finished.connect(loop.exit)
        loop.exec_()
    def __init__(self, iface, data, fallback = False):
        QObject.__init__(self)
        
        self.iface = iface
        self.canvas = self.iface.mapCanvas()
        self.fallback = fallback
        
        self.settings = QSettings("CatAIS","GeoAdminSearch")
        
        self.wmtsCapabilitities = self.settings.value("services/wmtscapabilities", "http://api3.geo.admin.ch/rest/services/api/1.0.0/WMTSCapabilities.xml")
        
        self.settings = QSettings("CatAIS","GeoAdminSearch")
        searchLanguage = self.settings.value("options/language", "de")
        self.userName = self.settings.value("options/username", "")
        self.password = self.settings.value("options/password", "")

        self.layerName = data['layer']
        
        url = self.wmtsCapabilitities

        # It does not work:
        # a) when networkAccess is not 'self'
        # b) without lambda
        self.networkAccess = QNetworkAccessManager()         
        self.connect(self.networkAccess, SIGNAL("finished(QNetworkReply*)"), lambda event, data=data: self.receiveWmtsCapabilities(event, data))
        self.networkAccess.get(QNetworkRequest(QUrl(url)))   
示例#14
0
 def make_request(self, url):
     url = QUrl(url)
     req = QNetworkRequest(url)
     for header in self.headers:
         val = self.headers[header]
         req.setRawHeader(header, val)
     return req
示例#15
0
 def getUpdateInfo(self):
     verurl = 'http://tortoisehg.bitbucket.org/curversion.txt'
     # If we use QNetworkAcessManager elsewhere, it should be shared
     # through the application.
     self._netmanager = QNetworkAccessManager(self)
     self._newverreply = self._netmanager.get(QNetworkRequest(QUrl(verurl)))
     self._newverreply.finished.connect(self.uFinished)
示例#16
0
 def _make_request(self, event):
     url = QUrl("{0}/notify_{1}/{2}".format(self.SERVER_URL, event,
                                            self.equipment))
     self.log.debug("Sending notification for '{0}' event to {1}".format(
         event, url.toString()))
     reply = self.manager.get(QNetworkRequest(url))
     reply.error.connect(self._reply_error)
     return reply
示例#17
0
文件: browser.py 项目: M954/web_scan
    def _make_request(self, url):

        url = QUrl.fromEncoded(url, QUrl.TolerantMode)
        #url = QUrl(url, QUrl.StrictMode)
        #url = QUrl.setUrl(url, QUrl.StrictMode)
        request = QNetworkRequest(url)
        #request = QNetworkRequest(url)
        return request
示例#18
0
 def setRemotePixmap(self, url):
     # Lazy creation of QNetworkManager, image download is asynchronous.
     # When the image download is complete (ie the "finished" signal),
     # the image data is read and drawn.
     if self.connection is None:
         self.connection = QNetworkAccessManager(self)
         self.connection.finished.connect(self.pixmapReceived)
     self.connection.get(QNetworkRequest(QUrl(url)))
示例#19
0
 def checkWeather(self):
     if self.reply is not None:
         return
     request = QNetworkRequest()
     request.setUrl(QUrl("http://api.liqwei.com/weather/"))
     self.reply = self.http.get(request)
     self.reply.finished.connect(self.onReplyFinished)
     self.reply.error.connect(self.onReplyError)
示例#20
0
 def downloadModPreview(self, strurl, requester):
     url = QtCore.QUrl(strurl)
     if not url.toString() in self.modRequests:
         logger.debug("Searching mod preview for: " +
                      os.path.basename(strurl).rsplit('.', 1)[0])
         self.modRequests[url.toString()] = []
         request = QNetworkRequest(url)
         self.nam.get(request)
     self.modRequests[url.toString()].append(requester)
示例#21
0
 def grabHTTP(self, url, loadFunction, arguments=None):
     """Grab distant content via QGIS internal classes and QtNetwork."""
     QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
     request = QUrl(url)
     reply = self.manager.get(QNetworkRequest(request))
     if arguments:
         reply.finished.connect(partial(loadFunction, reply, arguments))
     else:
         reply.finished.connect(partial(loadFunction, reply))
示例#22
0
    def get(self, mgr , url):

        request = QNetworkRequest(QtCore.QUrl(url))

        self.reply = mgr.get(request)

        self.reply.finished.connect(self.replyfinished)
        self.reply.readyRead.connect(self.readyRead)
        return self.reply
示例#23
0
def gettemp():
    global tempreply
    host = 'localhost'
    if platform.uname()[1] == 'KW81':
        host = 'piclock.local'  #this is here just for testing
    r = QUrl('http://' + host + ':48213/temp')
    r = QNetworkRequest(r)
    tempreply = manager.get(r)
    tempreply.finished.connect(tempfinished)
示例#24
0
    def check_updates(self, server, installedprojects):
        if not server:
            return

        self.server = server
        req = QNetworkRequest(QUrl(self.configurl))
        reply = self.net.get(req)
        reply.finished.connect(
            functools.partial(self.list_versions, reply, installedprojects))
示例#25
0
    def login(self):
        def showError(err):
            self.dlg.loginErrorLabel.setText(err)
            self.dlg.loginErrorLabel.show()
            self.dlg.selectThemeLabel.hide()
            self.dlg.themesBox.hide()

        def showSuccess():
            self.dlg.loginErrorLabel.hide()
            self.dlg.selectThemeLabel.show()
            self.dlg.themesBox.show()

        self.authCookies = None
        password = None
        if (self.settings.contains("password")):
            password = self.settings.value("password")
        email = None
        if (self.settings.contains("email")):
            email = self.settings.value("email")

        if password == None or password == "" or email == None or email == "":
            showError("login failed, no email or password.")
            return False

        try:
            network = QgsNetworkAccessManager.instance()
            url = QUrl('https://scalgo.com/py/liveLogin/login')
            url.addQueryItem('usernameOrEmail', email)
            url.addQueryItem('password', password)

            req = QNetworkRequest(url)
            reply = network.get(req)
            while not reply.isFinished():
                QCoreApplication.processEvents()

            status_code = reply.attribute(
                QNetworkRequest.HttpStatusCodeAttribute)

            if status_code == 200:
                showSuccess()
                return True
            data = reply.readAll()

            if data is None:
                showError("Empty login response.")
                return False

            resp = json.loads(unicode(data, "utf-8"))
            if 'message' in resp:
                showError("Login failure: %s" % resp['message'])
            else:
                showError("Login failure: %s" % r.status_code)
        except TypeError as te:
            showError("Unknown login error: %s" % te)

        return False
示例#26
0
    def saveImageas(self, url):
        self.messageBuffer = QByteArray()
        #url   = QUrl("http://upload.wikimedia.org/wikipedia/commons/f/fe/Google_Images_Logo.png")
        req = QNetworkRequest(url)
        self.reply = self.get(req)

        QObject.connect(self.reply, SIGNAL("readyRead()"), self,
                        SLOT("slotReadData()"))
        QObject.connect(self.reply, SIGNAL("finished()"), self,
                        SLOT("slotFinished()"))
示例#27
0
    def post(self, mgr , url , datas):

        request = QNetworkRequest(QtCore.QUrl(url))
        request.setHeader(QNetworkRequest.ContentTypeHeader,"application/x-www-form-urlencoded")

        self.reply = mgr.post(request , datas)

        self.reply.finished.connect(self.replyfinished)
        self.reply.readyRead.connect(self.readyRead)
        return self.reply
示例#28
0
	def __getReleasesFile(self, url):
		"""
		This method gets the releases file.
		"""

		LOGGER.debug("> Downloading '{0}' releases file.".format(url.path()))

		self.__engine.startProcessing("Retrieving Releases File ...")
		self.__releasesFileReply = self.__networkAccessManager.get(QNetworkRequest(url))
		self.__releasesFileReply.finished.connect(self.__releasesFileReply__finished)
示例#29
0
 def __init__(self, url, label=None, btn=None):
     QNetworkAccessManager.__init__(self)
     self.messageBuffer = QByteArray()
     self.label = label
     self.btn = btn
     self.frmt = "PNG" if url.rsplit('.', 1)[1] == 'png' else "JPG"
     request = QNetworkRequest(QUrl(url))
     self.reply = self.get(request)
     self.reply.finished.connect(self.slotFinished)
     self.reply.readyRead.connect(self.slotReadData)
示例#30
0
 def run(self):
     loop = QtCore.QEventLoop()
     nm = QNetworkAccessManager()
     reply = nm.get(QNetworkRequest(self.url))
     reply.finished.connect(loop.quit)
     loop.exec_()
     data = reply.readAll()
     self.resourceLoaded.emit(self.res_type, self.url, data)
     reply.deleteLater()
     nm.deleteLater()