@@ -53,6 +53,7 @@ def __init__(self, config):
5353 self .max_request_retries = int (self .max_request_retries )
5454 except (TypeError , ValueError ):
5555 self .max_request_retries = DEFAULT_MAX_REQUEST_RETRIES
56+ self .additional_http_headers = config ['http_headers' ] if 'http_headers' in config else None
5657 self .profile = config ['profile' ]
5758 self .network = CFnetwork (
5859 use_sessions = self .use_sessions ,
@@ -135,6 +136,14 @@ def _add_headers(self, method, data, files, content_type=None):
135136 self .headers ['Content-Type' ] = 'multipart/form-data'
136137 # however something isn't right and this works ... look at again later!
137138 del self .headers ['Content-Type' ]
139+ if self .additional_http_headers :
140+ for h in self .additional_http_headers :
141+ t , v = h .split (':' , 1 )
142+ t = t .strip ()
143+ v = v .strip ()
144+ if len (v ) > 0 and ((v [0 ] == '"' and v [- 1 ] == '"' ) or (v [0 ] == "'" and v [- 1 ] == "'" )):
145+ v = v [1 :- 1 ]
146+ self .headers [t ] = v
138147 return data , files
139148
140149 def _add_auth_headers (self , method ):
@@ -978,7 +987,7 @@ def api_from_openapi(self, url=None):
978987
979988 return self ._base .api_from_openapi (url )
980989
981- def __init__ (self , email = None , key = None , token = None , certtoken = None , debug = False , raw = False , use_sessions = True , profile = None , base_url = None , global_request_timeout = None , max_request_retries = None ):
990+ def __init__ (self , email = None , key = None , token = None , certtoken = None , debug = False , raw = False , use_sessions = True , profile = None , base_url = None , global_request_timeout = None , max_request_retries = None , http_headers = None ):
982991 """ Cloudflare v4 API"""
983992
984993 self ._base = None
@@ -1020,6 +1029,10 @@ def __init__(self, email=None, key=None, token=None, certtoken=None, debug=False
10201029 config ['global_request_timeout' ] = global_request_timeout
10211030 if max_request_retries is not None :
10221031 config ['max_request_retries' ] = max_request_retries
1032+ if http_headers is not None :
1033+ if not isinstance (http_headers , list ):
1034+ raise TypeError ('http_headers is not a list' )
1035+ config ['http_headers' ] = http_headers
10231036
10241037 # we do not need to handle item.call values - they pass straight thru
10251038
0 commit comments