コード例 #1
0
ファイル: ghost.py プロジェクト: 42cc/Ghost.py
    def open(self, address, method='get', headers={}, auth=None, body=None,
             default_popup_response=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 tuple of HTTP auth (username, password).
        :param body: An optional string containing a payload.
        :param default_popup_response: the default response for any confirm/
        alert/prompt popup from the Javascript (replaces the need for the with
        blocks)
        :return: Page resource, All loaded resources.
        """
        body = body or QByteArray()
        try:
            method = getattr(QNetworkAccessManager,
                             "%sOperation" % method.capitalize())
        except AttributeError:
            raise Error("Invalid http method %s" % method)
        request = QNetworkRequest(QUrl(address))
        request.CacheLoadControl(0)
        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

        if default_popup_response is not None:
            Ghost._prompt_expected = (default_popup_response, None)
            Ghost._confirm_expected = (default_popup_response, None)

        return self.wait_for_page_loaded()
コード例 #2
0
    def fetch_banner(self, url, index, cache=True):
        """Creates a request to load a banner from the given URL.

        A request is defined by its URL and carried out asynchronously.
        The result is stored on disk if caching is enabled. When a request
        has been completed, :py:meth:`.finished_request` will be invoked.

        :param url: The location of the banner to load.
        :type url: string
        :param index: The index referring to a :class:`.DecoratedNode`
            to fetch a banner for (origin of the request). Used to inform
            the node's model when the request was finished.
        :type index: :class:`~.PySide.QtCore.QModelIndex`
        :param cache: Determines if the loaded banner should be cached on disk.
        :type cache: bool

        """
        request = QNetworkRequest(QUrl(url))
        request.setAttribute(QNetworkRequest.CacheLoadControlAttribute, QNetworkRequest.PreferCache)
        request.setAttribute(QNetworkRequest.CacheSaveControlAttribute, cache)

        reply = access_manager.get(request)

        self._ready_signal[url] = index

        from_cache = bool(reply.attribute(QNetworkRequest.SourceIsFromCacheAttribute))
        logger.debug("Loading '{}' (Cached: {})".format(url, from_cache))
コード例 #3
0
ファイル: ghost.py プロジェクト: harobed/Ghost.py
    def open(self, address, method='get', headers={}, auth=None, body=None,
             default_popup_response=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 tuple of HTTP auth (username, password).
        :param body: An optional string containing a payload.
        :param default_popup_response: the default response for any confirm/
        alert/prompt popup from the Javascript (replaces the need for the with
        blocks)
        :return: Page resource, All loaded resources.
        """
        body = body or QByteArray()
        try:
            method = getattr(QNetworkAccessManager,
                             "%sOperation" % method.capitalize())
        except AttributeError:
            raise Error("Invalid http method %s" % method)
        request = QNetworkRequest(QUrl(address))
        request.CacheLoadControl(0)
        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

        if default_popup_response is not None:
            Ghost._prompt_expected = (default_popup_response, None)
            Ghost._confirm_expected = (default_popup_response, None)

        return self.wait_for_page_loaded()
コード例 #4
0
 def createRequest(self, operation, request, device=None):
     if self.headers:
         request = QNetworkRequest(request)
         if operation != QNetworkAccessManager.PostOperation and operation != QNetworkAccessManager.PutOperation :
             request.setHeader(QNetworkRequest.ContentTypeHeader, None)
         for item in self.headers.iteritems():
             request.setRawHeader(*item)
     return QNetworkAccessManager.createRequest(self,operation, request, device)
コード例 #5
0
ファイル: mediacontent_test.py プロジェクト: alal/Mobility
    def testRequestCtor(self):
        request = QNetworkRequest(QUrl('http://example.com/movie.mov'))
        request.setAttribute(QNetworkRequest.User, 1234)

        media = QMediaContent(request)

        self.assertEqual(media.canonicalUrl(), QUrl('http://example.com/movie.mov'))
        self.assertEqual(media.canonicalResource().request(), request)
        self.assertEqual(media.canonicalResource().url(), QUrl('http://example.com/movie.mov'))
コード例 #6
0
ファイル: mediacontent_test.py プロジェクト: setanta/Mobility
    def testRequestCtor(self):
        request = QNetworkRequest(QUrl('http://example.com/movie.mov'))
        request.setAttribute(QNetworkRequest.User, 1234)

        media = QMediaContent(request)

        self.assertEqual(media.canonicalUrl(),
                         QUrl('http://example.com/movie.mov'))
        self.assertEqual(media.canonicalResource().request(), request)
        self.assertEqual(media.canonicalResource().url(),
                         QUrl('http://example.com/movie.mov'))
コード例 #7
0
ファイル: qttut04.py プロジェクト: godber/path-of-a-pyqter
    def _prepare_request(self, url, headers):
        # create an empty request
        request = QNetworkRequest()
        # assign a url to it
        request.setUrl(QUrl(url))

        # add some custom headers to the request
        for (header_name, header_value) in headers.items():
            request.setRawHeader(header_name, QByteArray(header_value))

        return request
コード例 #8
0
 def test_connection(self):
     self.message.setText(
         '<span style="font-size: 10px; color: #000000;">' +
         'Verbindung wird getestet.' + '</span>')
     self.nam.finished.connect(self.test_reply)
     self.nam.sslErrors.connect(self.ssl_errors)
     ssl_config = QSslConfiguration().defaultConfiguration()
     ssl_config.setCiphers(QSslSocket().supportedCiphers())
     if self.certificate:
         certificate = QSslCertificate(encoded=self.certificate,
                                       format=QSsl.Pem)
         ssl_config.setCaCertificates([certificate])
     else:
         ssl_config.setCaCertificates([])
     url = QUrl(self.url_edit.text())
     url.setPath("/".join(
         filter(bool, (url.path() + "/ajax/read.php").split("/"))))
     request = QNetworkRequest(url)
     request.setSslConfiguration(ssl_config)
     request.setRawHeader(
         "Authorization", "Basic ".encode('utf-8') + b64encode(
             (self.username_edit.text() + ":" +
              self.password_edit.text()).encode('utf-8')))
     request.setHeader(QNetworkRequest.ContentTypeHeader,
                       "application/x-www-form-urlencoded")
     self.replies.add(self.nam.post(request, QByteArray()))
コード例 #9
0
ファイル: browser.py プロジェクト: halimath/recap
    def open(self, address, method='get', headers={}):
        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)

        for header in headers:
            request.setRawHeader(header, headers[header])

        self._view.page().currentFrame().load(request, method, body)
        self._wait_for_page()
コード例 #10
0
ファイル: ghost.py プロジェクト: bwhyte21/Ghost.py
    def open(self, address, method='get', headers={}, auth=None, body=None,
             default_popup_response=None, wait=True):
        """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 tuple of HTTP auth (username, password).
        :param body: An optional string containing a payload.
        :param default_popup_response: the default response for any confirm/
        alert/prompt popup from the Javascript (replaces the need for the with
        blocks)
        :param wait: If set to True (which is the default), this
        method call waits for the page load to complete before
        returning.  Otherwise, it just starts the page load task and
        it is the caller's responsibilty to wait for the load to
        finish by other means (e.g. by calling wait_for_page_loaded()).
        :return: Page resource, and all loaded resources, unless wait
        is False, in which case it returns None.
        """
        body = body or QByteArray()
        try:
            method = getattr(QNetworkAccessManager,
                             "%sOperation" % method.capitalize())
        except AttributeError:
            raise Error("Invalid http method %s" % method)
        request = QNetworkRequest(QUrl(address))
        request.CacheLoadControl(0)
        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

        if default_popup_response is not None:
            Ghost._prompt_expected = (default_popup_response, None)
            Ghost._confirm_expected = (default_popup_response, None)

        if wait:
            return self.wait_for_page_loaded()
コード例 #11
0
ファイル: network.py プロジェクト: blackknifes/VNR-Core
    def createRequest(self, op, req, outgoingData=None):  # override
        url = req.url()
        #print url
        #if url.scheme() == 'https' and url.host() in ('www.dmm.com', 'dmm.com'):
        #  path = url.path()
        #  if path.startswith('/js/') or path.startswith('/css/'):
        #    url.setScheme('http') # downgrade to http
        #    req.setUrl(url)
        #    dprint("downgrade https to http:", url)
        #print url
        newurl = _WbNetworkAccessManager.getBlockedUrl(url)
        if newurl:
            req = QNetworkRequest(newurl)
        else:
            newurl = proxy.toproxyurl(url)
            if newurl and newurl != url:
                req = QNetworkRequest(req)  # since request tis constent
                req.setUrl(newurl)
                _WbNetworkAccessManager.setRequestHeaders(req)
                reply = super(WbNetworkAccessManager,
                              self).createRequest(op, req, outgoingData)
                #if url.host().lower().endswith('dmm.co.jp'):
                reply.setUrl(url)  # restore the old url
                reply.setProperty(REQ_PROXY_URL, url)
                #print newurl
                return reply
            #else:
            #  print url

        _WbNetworkAccessManager.setRequestHeaders(req)
        return super(WbNetworkAccessManager,
                     self).createRequest(op, req, outgoingData)
コード例 #12
0
ファイル: image_downloader.py プロジェクト: jfoote/trollbox
 def get(self, url, local_path):
     print "url", url
     print "local_path", local_path
     self.url = url
     self.local_path = local_path
     self.mb = DownloadMessageBox(self.parent())
     self.mb.buttonClicked.connect(self.handleCancel)
     self.mb.rejected.connect(self.handleReject)
     mgr = QNetworkAccessManager(self)
     mgr.finished.connect(self.handleFinished)
     self.reply = mgr.get(QNetworkRequest(QUrl(url)))
     self.reply.downloadProgress.connect(self.mb.updateProgress)
     self.mb.exec_()
コード例 #13
0
ファイル: specter.py プロジェクト: andrew-d/Specter.py
    def open(self, address, method="GET", **kwargs):
        """
        Open a URL in the current frame.

        :param address: the url to open
        :param method: the HTTP method to use.  Defaults to 'GET'.
        """
        body = QByteArray()
        try:
            method = getattr(QNetworkAccessManager,
                             "%sOperation" % method.capitalize())
        except AttributeError:
            raise SpecterError("Invalid http method %s" % method)

        request = QNetworkRequest(QUrl(address))
        request.CacheLoadControl(0)

        # If we have headers...
        if 'headers' in kwargs:
            for header, val in kwargs['headers'].items():
                request.setRawHeader(header, val)

        self._frame.load(request, method, body)
コード例 #14
0
ファイル: dl.py プロジェクト: blackknifes/VNR-Core
 def get(self, url, path):
     """
 @param  url  unicode or QUrl
 @param  unicode  path
 @return  bool  whether succeeded
 """
     dprint('enter:', url)
     d = self.__d
     d.stop()
     if d.openFile(path):
         if not isinstance(url, QUrl):
             url = QUrl(url)
         d.request = QNetworkRequest(url)
         ok = d.start()
     else:
         ok = False
     dprint('leave: ret = %s' % ok)
     return ok
コード例 #15
0
 def test_connection(self):
     self.message.setText('<span style="font-size: 10px; color: #000000;">' +
                          'Verbindung wird getestet.' +
                          '</span>')
     self.nam.finished.connect(self.test_reply)
     self.nam.sslErrors.connect(self.ssl_errors)
     ssl_config = QSslConfiguration().defaultConfiguration()
     ssl_config.setCiphers(QSslSocket().supportedCiphers())
     if self.certificate:
         certificate = QSslCertificate(encoded=self.certificate, format=QSsl.Pem)
         ssl_config.setCaCertificates([certificate])
     else:
         ssl_config.setCaCertificates([])
     url = QUrl(self.url_edit.text())
     url.setPath("/".join(filter(bool, (url.path() + "/ajax/read.php").split("/"))))
     request = QNetworkRequest(url)
     request.setSslConfiguration(ssl_config)
     request.setRawHeader("Authorization",
                          "Basic ".encode('utf-8') +
                          b64encode((self.username_edit.text() + ":" + self.password_edit.text()).encode('utf-8')))
     request.setHeader(QNetworkRequest.ContentTypeHeader, "application/x-www-form-urlencoded")
     self.replies.add(self.nam.post(request, QByteArray()))
コード例 #16
0
 def do_download(self, dl_url):
     url = QUrl(dl_url)
     req = QNetworkRequest(url)
     reply = self.manager.get(req)
     self.current_downloads[reply] = dl_url
コード例 #17
0
ファイル: t1.py プロジェクト: zjx4041739/dlp
 def _make_request(self, url):
     request = QNetworkRequest()
     request.setUrl(QUrl(url))
     return request