Support http body in OPTIONS request in python client

This commit is contained in:
geekerzp 2015-09-15 17:48:59 +08:00
parent bd63c1d9d9
commit ade61c0701
4 changed files with 20 additions and 12 deletions

View File

@ -341,7 +341,9 @@ class ApiClient(object):
elif method == "OPTIONS": elif method == "OPTIONS":
return self.rest_client.OPTIONS(url, return self.rest_client.OPTIONS(url,
query_params=query_params, query_params=query_params,
headers=headers) headers=headers,
post_params=post_params,
body=body)
elif method == "POST": elif method == "POST":
return self.rest_client.POST(url, return self.rest_client.POST(url,
query_params=query_params, query_params=query_params,

View File

@ -117,8 +117,8 @@ class RESTClientObject(object):
headers['Content-Type'] = 'application/json' headers['Content-Type'] = 'application/json'
try: try:
# For `POST`, `PUT`, `PATCH` # For `POST`, `PUT`, `PATCH`, `OPTIONS`
if method in ['POST', 'PUT', 'PATCH']: if method in ['POST', 'PUT', 'PATCH', 'OPTIONS']:
if query_params: if query_params:
url += '?' + urlencode(query_params) url += '?' + urlencode(query_params)
if headers['Content-Type'] == 'application/json': if headers['Content-Type'] == 'application/json':
@ -138,7 +138,7 @@ class RESTClientObject(object):
fields=post_params, fields=post_params,
encode_multipart=True, encode_multipart=True,
headers=headers) headers=headers)
# For `GET`, `HEAD`, `DELETE`, `OPTIONS` # For `GET`, `HEAD`, `DELETE`
else: else:
r = self.pool_manager.request(method, url, r = self.pool_manager.request(method, url,
fields=query_params, fields=query_params,
@ -172,10 +172,12 @@ class RESTClientObject(object):
headers=headers, headers=headers,
query_params=query_params) query_params=query_params)
def OPTIONS(self, url, headers=None, query_params=None): def OPTIONS(self, url, headers=None, query_params=None, post_params=None, body=None):
return self.request("OPTIONS", url, return self.request("OPTIONS", url,
headers=headers, headers=headers,
query_params=query_params) query_params=query_params,
post_params=post_params,
body=body)
def DELETE(self, url, headers=None, query_params=None): def DELETE(self, url, headers=None, query_params=None):
return self.request("DELETE", url, return self.request("DELETE", url,

View File

@ -341,7 +341,9 @@ class ApiClient(object):
elif method == "OPTIONS": elif method == "OPTIONS":
return self.rest_client.OPTIONS(url, return self.rest_client.OPTIONS(url,
query_params=query_params, query_params=query_params,
headers=headers) headers=headers,
post_params=post_params,
body=body)
elif method == "POST": elif method == "POST":
return self.rest_client.POST(url, return self.rest_client.POST(url,
query_params=query_params, query_params=query_params,

View File

@ -117,8 +117,8 @@ class RESTClientObject(object):
headers['Content-Type'] = 'application/json' headers['Content-Type'] = 'application/json'
try: try:
# For `POST`, `PUT`, `PATCH` # For `POST`, `PUT`, `PATCH`, `OPTIONS`
if method in ['POST', 'PUT', 'PATCH']: if method in ['POST', 'PUT', 'PATCH', 'OPTIONS']:
if query_params: if query_params:
url += '?' + urlencode(query_params) url += '?' + urlencode(query_params)
if headers['Content-Type'] == 'application/json': if headers['Content-Type'] == 'application/json':
@ -138,7 +138,7 @@ class RESTClientObject(object):
fields=post_params, fields=post_params,
encode_multipart=True, encode_multipart=True,
headers=headers) headers=headers)
# For `GET`, `HEAD`, `DELETE`, `OPTIONS` # For `GET`, `HEAD`, `DELETE`
else: else:
r = self.pool_manager.request(method, url, r = self.pool_manager.request(method, url,
fields=query_params, fields=query_params,
@ -172,10 +172,12 @@ class RESTClientObject(object):
headers=headers, headers=headers,
query_params=query_params) query_params=query_params)
def OPTIONS(self, url, headers=None, query_params=None): def OPTIONS(self, url, headers=None, query_params=None, post_params=None, body=None):
return self.request("OPTIONS", url, return self.request("OPTIONS", url,
headers=headers, headers=headers,
query_params=query_params) query_params=query_params,
post_params=post_params,
body=body)
def DELETE(self, url, headers=None, query_params=None): def DELETE(self, url, headers=None, query_params=None):
return self.request("DELETE", url, return self.request("DELETE", url,