CasperSecurity

Current Path : /lib/python3/dist-packages/requests_toolbelt/
Upload File :
Current File : //lib/python3/dist-packages/requests_toolbelt/sessions.py

import requests

from ._compat import urljoin


class BaseUrlSession(requests.Session):
    """A Session with a URL that all requests will use as a base.

    Let's start by looking at an example:

    .. code-block:: python

        >>> from requests_toolbelt import sessions
        >>> s = sessions.BaseUrlSession(
        ...     base_url='https://example.com/resource/')
        >>> r = s.get('sub-resource/' params={'foo': 'bar'})
        >>> print(r.request.url)
        https://example.com/resource/sub-resource/?foo=bar

    Our call to the ``get`` method will make a request to the URL passed in
    when we created the Session and the partial resource name we provide.

    We implement this by overriding the ``request`` method so most uses of a
    Session are covered. (This, however, precludes the use of PreparedRequest
    objects).

    .. note::

        The base URL that you provide and the path you provide are **very**
        important.

    Let's look at another *similar* example

    .. code-block:: python

        >>> from requests_toolbelt import sessions
        >>> s = sessions.BaseUrlSession(
        ...     base_url='https://example.com/resource/')
        >>> r = s.get('/sub-resource/' params={'foo': 'bar'})
        >>> print(r.request.url)
        https://example.com/sub-resource/?foo=bar

    The key difference here is that we called ``get`` with ``/sub-resource/``,
    i.e., there was a leading ``/``. This changes how we create the URL
    because we rely on :mod:`urllib.parse.urljoin`.

    To override how we generate the URL, sub-class this method and override the
    ``create_url`` method.

    Based on implementation from
    https://github.com/kennethreitz/requests/issues/2554#issuecomment-109341010
    """

    base_url = None

    def __init__(self, base_url=None):
        if base_url:
            self.base_url = base_url
        super(BaseUrlSession, self).__init__()

    def request(self, method, url, *args, **kwargs):
        """Send the request after generating the complete URL."""
        url = self.create_url(url)
        return super(BaseUrlSession, self).request(
            method, url, *args, **kwargs
        )

    def create_url(self, url):
        """Create the URL based off this partial path."""
        return urljoin(self.base_url, url)
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY