X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Fhttp.py;h=3d21465ce43cbc45437a961fcb5d0ceaa62b2be8;hb=bd39b09580560307a1ac23be4984783d1bea9238;hp=aca8a4b20b72d564b08ae54bcf8c9012bfd8beb4;hpb=6bc001c642c74e6742d0a5dd5922738ae4c4fb0d;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/http.py b/osmclient/sol005/http.py index aca8a4b..3d21465 100644 --- a/osmclient/sol005/http.py +++ b/osmclient/sol005/http.py @@ -20,6 +20,7 @@ import json import logging import copy from osmclient.common import http +from osmclient.common.exceptions import OsmHttpException, NotFound class Http(http.Http): @@ -54,10 +55,12 @@ class Http(http.Http): http_code = curl_cmd.getinfo(pycurl.HTTP_CODE) self._logger.info("Response HTTPCODE: {}".format(http_code)) curl_cmd.close() + self.check_http_response(http_code, data) # TODO 202 accepted should be returned somehow if data.getvalue(): - self._logger.verbose("Response DATA: {}".format(json.loads(data.getvalue().decode()))) - return http_code, data.getvalue().decode() + data_text = data.getvalue().decode() + self._logger.verbose("Response DATA: {}".format(data_text)) + return http_code, data_text else: return http_code, None @@ -106,9 +109,11 @@ class Http(http.Http): http_code = curl_cmd.getinfo(pycurl.HTTP_CODE) self._logger.info("Response HTTPCODE: {}".format(http_code)) curl_cmd.close() + self.check_http_response(http_code, data) if data.getvalue(): - self._logger.verbose("Response DATA: {}".format(json.loads(data.getvalue().decode()))) - return http_code, data.getvalue().decode() + data_text = data.getvalue().decode() + self._logger.verbose("Response DATA: {}".format(data_text)) + return http_code, data_text else: return http_code, None @@ -150,8 +155,22 @@ class Http(http.Http): http_code = curl_cmd.getinfo(pycurl.HTTP_CODE) self._logger.info("Response HTTPCODE: {}".format(http_code)) curl_cmd.close() + self.check_http_response(http_code, data) if data.getvalue(): - self._logger.debug("Response DATA: {}".format(json.loads(data.getvalue().decode()))) - return http_code, data.getvalue().decode() + data_text = data.getvalue().decode() + self._logger.verbose("Response DATA: {}".format(data_text)) + return http_code, data_text return http_code, None + def check_http_response(self, http_code, data): + if http_code >= 300: + resp = "" + if data.getvalue(): + data_text = data.getvalue().decode() + self._logger.verbose("Response {} DATA: {}".format(http_code, data_text)) + resp = ": " + data_text + else: + self._logger.verbose("Response {}".format(http_code)) + if http_code == 404: + raise NotFound("Error {}{}".format(http_code, resp)) + raise OsmHttpException("Error {}{}".format(http_code, resp))