UrlService add support get headers (#9236)
This commit is contained in:
parent
0b749a7dbe
commit
94ba544563
|
@ -120,15 +120,17 @@ class UrlService(SimpleService):
|
|||
:return: str
|
||||
"""
|
||||
try:
|
||||
status, data = self._get_raw_data_with_status(url, manager, **kwargs)
|
||||
response = self._do_request(url, manager, **kwargs)
|
||||
except Exception as error:
|
||||
self.error('Url: {url}. Error: {error}'.format(url=url or self.url, error=error))
|
||||
return None
|
||||
|
||||
if status == 200:
|
||||
return data
|
||||
if response.status == 200:
|
||||
if isinstance(response.data, str):
|
||||
return response.data
|
||||
return response.data.decode(errors='ignore')
|
||||
else:
|
||||
self.debug('Url: {url}. Http response status code: {code}'.format(url=url or self.url, code=status))
|
||||
self.debug('Url: {url}. Http response status code: {code}'.format(url=url or self.url, code=response.status))
|
||||
return None
|
||||
|
||||
def _get_raw_data_with_status(self, url=None, manager=None, retries=1, redirect=True, **kwargs):
|
||||
|
@ -136,6 +138,17 @@ class UrlService(SimpleService):
|
|||
Get status and response body content from http request. Does not catch exceptions
|
||||
:return: int, str
|
||||
"""
|
||||
response = self._do_request(url, manager, retries, redirect, **kwargs)
|
||||
|
||||
if isinstance(response.data, str):
|
||||
return response.status, response.data
|
||||
return response.status, response.data.decode(errors='ignore')
|
||||
|
||||
def _do_request(self, url=None, manager=None, retries=1, redirect=True, **kwargs):
|
||||
"""
|
||||
Get response from http request. Does not catch exceptions
|
||||
:return: HTTPResponse
|
||||
"""
|
||||
url = url or self.url
|
||||
manager = manager or self._manager
|
||||
retry = urllib3.Retry(retries)
|
||||
|
@ -154,9 +167,7 @@ class UrlService(SimpleService):
|
|||
redirect=redirect,
|
||||
**kwargs
|
||||
)
|
||||
if isinstance(response.data, str):
|
||||
return response.status, response.data
|
||||
return response.status, response.data.decode(errors='ignore')
|
||||
return response
|
||||
|
||||
def check(self):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue