Вот (с точки зрения высокого уровня) механизм, стоящий за запросами:
Когда запрос сформирован request(method, url, **kwargs)
, только аргументы метода и URL-адреса являются обязательными, остальные являются необязательными:
:param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
Впоследствии с точки зрения методов:
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
"""
kwargs.setdefault('allow_redirects', True)
return request('get', url, params=params, **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) json data 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)
Для get
и post
обязательным аргументом является URL-адрес, а остальные являются значениями по умолчанию или необязательными.
Многим веб-службам может потребоваться аутентификация, например HTTP Basi c Auth . Это самый простой вид, и Requests поддерживает его прямо из коробки.
from requests.auth import HTTPBasicAuth
requests.get('http://host:port/api/users', auth=('user', 'pass'))
То же самое с
from requests.auth import HTTPBasicAuth
requests.get('http://host:port/api/user', auth=HTTPBasicAuth('user', 'pass'))
Так что в принципе очень важно, как API был реализован из точка зрения аутентификации (HTTPBasicAuth, HTTPDigest Authentication, OAuth1). Исходя из этого, вы можете использовать соответствующий модуль (в пределах requests
) для аутентификации.
Надеюсь, это поможет