Source code for umbr_api._http_requests

#!/usr/bin/env python3
"""Wrapper for request module calls."""

import json
import requests

from logzero import logger


[docs]def send_get(url): """Send HTTP GET request via 'requests' module.""" return send_any('GET', url)
[docs]def send_any(method, url, headers=None, data=None): """Send HTTP request via 'requests' module.""" assert url assert isinstance(url, str) logger.info('Requesting: %s', url) if headers: logger.debug('Headers to send: %s', str(headers)) if data: logger.debug('Data to send: %s', str(data)) try: response = requests.request(method, url, headers=headers, data=data) except requests.exceptions.RequestException as err_msg: logger.exception(err_msg) response = None else: response_logging(response) return response
[docs]def send_post(url, data=None, headers=None): """Send HTTP POST request via 'requests' module.""" return send_any('POST', url, data=data, headers=headers)
[docs]def send_delete(url, headers=None): """Send HTTP DELETE request via 'requests' module.""" return send_any('DELETE', url, headers=headers)
[docs]def response_logging(response): """Log responses.""" logger.info('Response code: %d', response.status_code) logger.info('Response headers: %s', str(response.headers)[:100]) logger.debug( 'Response headers:\n%s', json.dumps(dict(response.headers), indent=4) ) logger.info('Response: %s', response.text[:100]) if response.text: logger.debug( 'Response:\n%s', json.dumps(json.loads(response.text), indent=4) ) else: logger.debug('Response: <empty>')
if __name__ == '__main__': pass