in alibabacloud-gateway-sls/python2/alibabacloud_gateway_sls/client.py [0:0]
def modify_response(self, context, attribute_map):
request = context.request
response = context.response
if UtilClient.is_4xx(response.status_code) or UtilClient.is_5xx(response.status_code):
error = UtilClient.read_as_json(response.body)
res_map = UtilClient.assert_as_map(error)
raise TeaException({
'code': res_map.get('errorCode'),
'message': res_map.get('errorMessage'),
'data': {
'httpCode': response.status_code,
'requestId': response.headers.get('x-log-requestid'),
'statusCode': response.status_code
}
})
if not UtilClient.is_unset(response.body):
bodyraw_size = response.headers.get('x-log-bodyrawsize')
compress_type = response.headers.get('x-log-compresstype')
uncompressed_data = response.body
if not UtilClient.is_unset(bodyraw_size) and not UtilClient.is_unset(compress_type):
uncompressed_data = SLS_UtilClient.read_and_uncompress_block(response.body, compress_type, bodyraw_size)
if UtilClient.equal_string(request.body_type, 'binary'):
response.deserialized_body = uncompressed_data
elif UtilClient.equal_string(request.body_type, 'byte'):
byt = UtilClient.read_as_bytes(uncompressed_data)
response.deserialized_body = byt
elif UtilClient.equal_string(request.body_type, 'string'):
response.deserialized_body = UtilClient.read_as_string(uncompressed_data)
elif UtilClient.equal_string(request.body_type, 'json'):
obj = UtilClient.read_as_json(uncompressed_data)
# var res = Util.assertAsMap(obj);
response.deserialized_body = obj
elif UtilClient.equal_string(request.body_type, 'array'):
response.deserialized_body = UtilClient.read_as_json(uncompressed_data)
else:
response.deserialized_body = UtilClient.read_as_string(uncompressed_data)