1 from __future__ import absolute_import
2 from base64 import b64encode
4 from ..packages.six import b
6 ACCEPT_ENCODING = 'gzip,deflate'
9 def make_headers(keep_alive=None, accept_encoding=None, user_agent=None,
10 basic_auth=None, proxy_basic_auth=None, disable_cache=None):
12 Shortcuts for generating request headers.
15 If ``True``, adds 'connection: keep-alive' header.
17 :param accept_encoding:
18 Can be a boolean, list, or string.
19 ``True`` translates to 'gzip,deflate'.
20 List will get joined by comma.
21 String will be used as provided.
24 String representing the user-agent you want, such as
28 Colon-separated username:password string for 'authorization: basic ...'
31 :param proxy_basic_auth:
32 Colon-separated username:password string for 'proxy-authorization: basic ...'
36 If ``True``, adds 'cache-control: no-cache' header.
40 >>> make_headers(keep_alive=True, user_agent="Batman/1.0")
41 {'connection': 'keep-alive', 'user-agent': 'Batman/1.0'}
42 >>> make_headers(accept_encoding=True)
43 {'accept-encoding': 'gzip,deflate'}
47 if isinstance(accept_encoding, str):
49 elif isinstance(accept_encoding, list):
50 accept_encoding = ','.join(accept_encoding)
52 accept_encoding = ACCEPT_ENCODING
53 headers['accept-encoding'] = accept_encoding
56 headers['user-agent'] = user_agent
59 headers['connection'] = 'keep-alive'
62 headers['authorization'] = 'Basic ' + \
63 b64encode(b(basic_auth)).decode('utf-8')
66 headers['proxy-authorization'] = 'Basic ' + \
67 b64encode(b(proxy_basic_auth)).decode('utf-8')
70 headers['cache-control'] = 'no-cache'