mirror of
https://github.com/rembo10/headphones.git
synced 2026-03-22 12:49:26 +00:00
Parse response content for HTTP errors when verbose is turned on
This commit is contained in:
@@ -45,10 +45,10 @@ def request_response(url, method="get", auto_raise=True, whitelist_status_code=N
|
|||||||
|
|
||||||
return response
|
return response
|
||||||
except requests.ConnectionError:
|
except requests.ConnectionError:
|
||||||
logger.error("Unable to connect to remote host.")
|
logger.error("Unable to connect to remote host. Check if the remote host is up and running.")
|
||||||
except requests.Timeout:
|
except requests.Timeout:
|
||||||
logger.error("Request timed out.")
|
logger.error("Request timed out. The remote host did not respeond timely.")
|
||||||
except requests.HTTPError, e:
|
except requests.HTTPError as e:
|
||||||
if e.response is not None:
|
if e.response is not None:
|
||||||
if e.response.status_code >= 500:
|
if e.response.status_code >= 500:
|
||||||
cause = "remote server error"
|
cause = "remote server error"
|
||||||
@@ -59,9 +59,27 @@ def request_response(url, method="get", auto_raise=True, whitelist_status_code=N
|
|||||||
cause = "unknown"
|
cause = "unknown"
|
||||||
|
|
||||||
logger.error("Request raise HTTP error with status code %d (%s).", e.response.status_code, cause)
|
logger.error("Request raise HTTP error with status code %d (%s).", e.response.status_code, cause)
|
||||||
|
|
||||||
|
# Some servers return extra information in the result. Try to parse
|
||||||
|
# it for debugging purpose. Messages are limited to 100 characters,
|
||||||
|
# since it may return the whole page in case of normal web page URLs
|
||||||
|
if headphones.VERBOSE:
|
||||||
|
if e.response.headers.get('content-type') == 'text/html':
|
||||||
|
soup = BeautifulSoup(e.response.content, "html5lib")
|
||||||
|
|
||||||
|
message = soup.find("body")
|
||||||
|
message = message.text if message else soup.text
|
||||||
|
else:
|
||||||
|
message = e.response.content
|
||||||
|
|
||||||
|
# Truncate message if it is too long.
|
||||||
|
if len(message) > 100:
|
||||||
|
message = message[:100] + "..."
|
||||||
|
|
||||||
|
logger.debug("Server responded with message: %s", message)
|
||||||
else:
|
else:
|
||||||
logger.error("Request raised HTTP error.")
|
logger.error("Request raised HTTP error.")
|
||||||
except requests.RequestException, e:
|
except requests.RequestException as e:
|
||||||
logger.error("Request raised exception: %s", e)
|
logger.error("Request raised exception: %s", e)
|
||||||
|
|
||||||
def request_soup(url, **kwargs):
|
def request_soup(url, **kwargs):
|
||||||
|
|||||||
Reference in New Issue
Block a user