Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
2 views

api

The document describes the Requests API module, which allows users to send HTTP requests using various methods like GET, POST, PUT, PATCH, and DELETE. It provides detailed information on the parameters that can be used with the request function, including options for headers, authentication, timeouts, and more. Additionally, it includes example usage for sending different types of requests.

Uploaded by

Rafael Morais
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

api

The document describes the Requests API module, which allows users to send HTTP requests using various methods like GET, POST, PUT, PATCH, and DELETE. It provides detailed information on the parameters that can be used with the request function, including options for headers, authentication, timeouts, and more. Additionally, it includes example usage for sending different types of requests.

Uploaded by

Rafael Morais
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

"""

requests.api
~~~~~~~~~~~~

This module implements the Requests API.

:copyright: (c) 2012 by Kenneth Reitz.


:license: Apache2, see LICENSE for more details.
"""

from . import sessions

def request(method, url, **kwargs):


"""Constructs and sends a :class:`Request <Request>`.

:param method: method for the new :class:`Request` object: ``GET``,


``OPTIONS``, ``HEAD``, ``POST``, ``PUT``, ``PATCH``, or ``DELETE``.
:param url: URL for the new :class:`Request` object.
:param params: (optional) Dictionary, list of tuples or bytes to send
in the query string for the :class:`Request`.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
object to send in the body of the :class:`Request`.
:param json: (optional) A JSON serializable Python object to send in the body
of the :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to send with
the :class:`Request`.
:param cookies: (optional) Dict or CookieJar object to send with
the :class:`Request`.
:param files: (optional) Dictionary of ``'name': file-like-objects`` (or
``{'name': file-tuple}``) for multipart encoding upload.
``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple
``('filename', fileobj, 'content_type')``
or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``,
where ``'content_type'`` is a string
defining the content type of the given file and ``custom_headers`` a dict-
like object containing additional headers
to add for the file.
:param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
:param timeout: (optional) How many seconds to wait for the server to send data
before giving up, as a float, or a :ref:`(connect timeout, read
timeout) <timeouts>` tuple.
:type timeout: float or tuple
:param allow_redirects: (optional) Boolean. Enable/disable
GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``.
:type allow_redirects: bool
:param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
:param verify: (optional) Either a boolean, in which case it controls whether
we verify
the server's TLS certificate, or a string, in which case it must be a
path
to a CA bundle to use. Defaults to ``True``.
:param stream: (optional) if ``False``, the response content will be
immediately downloaded.
:param cert: (optional) if String, path to ssl client cert file (.pem). If
Tuple, ('cert', 'key') pair.
:return: :class:`Response <Response>` object
:rtype: requests.Response
Usage::

>>> import requests


>>> req = requests.request('GET', 'https://httpbin.org/get')
>>> req
<Response [200]>
"""

# By using the 'with' statement we are sure the session is closed, thus we
# avoid leaving sockets open which can trigger a ResourceWarning in some
# cases, and look like a memory leak in others.
with sessions.Session() as session:
return session.request(method=method, url=url, **kwargs)

def get(url, params=None, **kwargs):


r"""Sends a GET request.

:param url: URL for the new :class:`Request` object.


:param params: (optional) Dictionary, list of tuples or bytes to send
in the query string for the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""

return request("get", url, params=params, **kwargs)

def options(url, **kwargs):


r"""Sends an OPTIONS request.

:param url: URL for the new :class:`Request` object.


:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""

return request("options", url, **kwargs)

def head(url, **kwargs):


r"""Sends a HEAD request.

:param url: URL for the new :class:`Request` object.


:param \*\*kwargs: Optional arguments that ``request`` takes. If
`allow_redirects` is not provided, it will be set to `False` (as
opposed to the default :meth:`request` behavior).
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""

kwargs.setdefault("allow_redirects", False)
return request("head", url, **kwargs)

def post(url, data=None, json=None, **kwargs):


r"""Sends a POST request.
:param url: URL for the new :class:`Request` object.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
object to send in the body of the :class:`Request`.
:param json: (optional) A JSON serializable Python object to send in the body
of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""

return request("post", url, data=data, json=json, **kwargs)

def put(url, data=None, **kwargs):


r"""Sends a PUT request.

:param url: URL for the new :class:`Request` object.


:param data: (optional) Dictionary, list of tuples, bytes, or file-like
object to send in the body of the :class:`Request`.
:param json: (optional) A JSON serializable Python object to send in the body
of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""

return request("put", url, data=data, **kwargs)

def patch(url, data=None, **kwargs):


r"""Sends a PATCH request.

:param url: URL for the new :class:`Request` object.


:param data: (optional) Dictionary, list of tuples, bytes, or file-like
object to send in the body of the :class:`Request`.
:param json: (optional) A JSON serializable Python object to send in the body
of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""

return request("patch", url, data=data, **kwargs)

def delete(url, **kwargs):


r"""Sends a DELETE request.

:param url: URL for the new :class:`Request` object.


:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""

return request("delete", url, **kwargs)

You might also like