исправлена обработка запросов с ошибкой не json формата
このコミットが含まれているのは:
コミット
46a6d33986
|
@ -1,3 +1,5 @@
|
||||||
|
# TODO (MarshalX) все исключения должны заканчиваться на Error
|
||||||
|
|
||||||
class YandexMusicError(Exception):
|
class YandexMusicError(Exception):
|
||||||
"""Базовый класс, представляющий исключения общего характера."""
|
"""Базовый класс, представляющий исключения общего характера."""
|
||||||
|
|
||||||
|
|
|
@ -201,20 +201,24 @@ class Request:
|
||||||
if 200 <= resp.status_code <= 299:
|
if 200 <= resp.status_code <= 299:
|
||||||
return resp.content
|
return resp.content
|
||||||
|
|
||||||
parse = self._parse(resp.content)
|
try:
|
||||||
message = parse.get_error() or 'Unknown HTTPError'
|
parse = self._parse(resp.content)
|
||||||
|
message = parse.get_error()
|
||||||
|
except YandexMusicError:
|
||||||
|
message = 'Unknown HTTPError'
|
||||||
|
|
||||||
if resp.status_code in (401, 403):
|
if resp.status_code in (401, 403):
|
||||||
raise Unauthorized(message)
|
raise Unauthorized(message)
|
||||||
elif resp.status_code == 400:
|
elif resp.status_code == 400:
|
||||||
raise BadRequest(message)
|
raise BadRequest(message)
|
||||||
elif resp.status_code in (404, 409, 413):
|
elif resp.status_code in (404, 409, 413):
|
||||||
|
# TODO (MarshalX) было бы удобнее при 404 выбрасывать NotFoundError. Наследник NetworkError
|
||||||
raise NetworkError(message)
|
raise NetworkError(message)
|
||||||
|
|
||||||
elif resp.status_code == 502:
|
elif resp.status_code == 502:
|
||||||
raise NetworkError('Bad Gateway')
|
raise NetworkError('Bad Gateway')
|
||||||
else:
|
else:
|
||||||
raise NetworkError(f'{message} ({resp.status_code})')
|
raise NetworkError(f'{message} ({resp.status_code}): {resp.content}')
|
||||||
|
|
||||||
def get(self, url: str, params: dict = None, timeout: Union[int, float] = 5, *args, **kwargs) -> Union[dict, str]:
|
def get(self, url: str, params: dict = None, timeout: Union[int, float] = 5, *args, **kwargs) -> Union[dict, str]:
|
||||||
"""Отправка GET запроса.
|
"""Отправка GET запроса.
|
||||||
|
|
|
@ -209,20 +209,24 @@ class Request:
|
||||||
if 200 <= resp.status <= 299:
|
if 200 <= resp.status <= 299:
|
||||||
return content
|
return content
|
||||||
|
|
||||||
parse = self._parse(content)
|
try:
|
||||||
message = parse.get_error() or 'Unknown HTTPError'
|
parse = self._parse(content)
|
||||||
|
message = parse.get_error()
|
||||||
|
except YandexMusicError:
|
||||||
|
message = 'Unknown HTTPError'
|
||||||
|
|
||||||
if resp.status in (401, 403):
|
if resp.status in (401, 403):
|
||||||
raise Unauthorized(message)
|
raise Unauthorized(message)
|
||||||
elif resp.status == 400:
|
elif resp.status == 400:
|
||||||
raise BadRequest(message)
|
raise BadRequest(message)
|
||||||
elif resp.status in (404, 409, 413):
|
elif resp.status in (404, 409, 413):
|
||||||
|
# TODO (MarshalX) было бы удобнее при 404 выбрасывать NotFoundError. Наследник NetworkError
|
||||||
raise NetworkError(message)
|
raise NetworkError(message)
|
||||||
|
|
||||||
elif resp.status == 502:
|
elif resp.status == 502:
|
||||||
raise NetworkError('Bad Gateway')
|
raise NetworkError('Bad Gateway')
|
||||||
else:
|
else:
|
||||||
raise NetworkError(f'{message} ({resp.status})')
|
raise NetworkError(f'{message} ({resp.status}): {content}')
|
||||||
|
|
||||||
async def get(
|
async def get(
|
||||||
self, url: str, params: dict = None, timeout: Union[int, float] = 5, *args, **kwargs
|
self, url: str, params: dict = None, timeout: Union[int, float] = 5, *args, **kwargs
|
||||||
|
|
読み込み中…
新しいイシューから参照