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'