UrlService add support get headers (#9236)

This commit is contained in:
Javier Pastor 2020-07-02 13:01:51 +02:00 committed by GitHub
parent 0b749a7dbe
commit 94ba544563
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 7 deletions

View File

@ -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):
"""