in alibabacloud-gateway-sls/csharp/core/Client.cs [402:460]
public void ModifyResponse(AlibabaCloud.GatewaySpi.Models.InterceptorContext context, AlibabaCloud.GatewaySpi.Models.AttributeMap attributeMap)
{
AlibabaCloud.GatewaySpi.Models.InterceptorContext.InterceptorContextRequest request = context.Request;
AlibabaCloud.GatewaySpi.Models.InterceptorContext.InterceptorContextResponse response = context.Response;
if (AlibabaCloud.TeaUtil.Common.Is4xx(response.StatusCode) || AlibabaCloud.TeaUtil.Common.Is5xx(response.StatusCode))
{
object error = AlibabaCloud.TeaUtil.Common.ReadAsJSON(response.Body);
Dictionary<string, object> resMap = AlibabaCloud.TeaUtil.Common.AssertAsMap(error);
throw new TeaException(new Dictionary<string, object>
{
{"code", resMap.Get("errorCode")},
{"message", resMap.Get("errorMessage")},
{"accessDeniedDetail", resMap.Get("accessDeniedDetail")},
{"data", new Dictionary<string, object>
{
{"httpCode", response.StatusCode},
{"requestId", response.Headers.Get("x-log-requestid")},
{"statusCode", response.StatusCode},
}},
});
}
if (!AlibabaCloud.TeaUtil.Common.IsUnset(response.Body))
{
string bodyrawSize = response.Headers.Get("x-log-bodyrawsize");
string compressType = response.Headers.Get("x-log-compresstype");
Stream uncompressedData = response.Body;
if (!AlibabaCloud.TeaUtil.Common.IsUnset(bodyrawSize) && !AlibabaCloud.TeaUtil.Common.IsUnset(compressType))
{
uncompressedData = AlibabaCloud.GatewaySls_Util.Client.ReadAndUncompressBlock(response.Body, compressType, bodyrawSize);
}
if (AlibabaCloud.TeaUtil.Common.EqualString(request.BodyType, "binary"))
{
response.DeserializedBody = uncompressedData;
}
else if (AlibabaCloud.TeaUtil.Common.EqualString(request.BodyType, "byte"))
{
byte[] byt = AlibabaCloud.TeaUtil.Common.ReadAsBytes(uncompressedData);
response.DeserializedBody = byt;
}
else if (AlibabaCloud.TeaUtil.Common.EqualString(request.BodyType, "string"))
{
response.DeserializedBody = AlibabaCloud.TeaUtil.Common.ReadAsString(uncompressedData);
}
else if (AlibabaCloud.TeaUtil.Common.EqualString(request.BodyType, "json"))
{
object obj = AlibabaCloud.TeaUtil.Common.ReadAsJSON(uncompressedData);
// var res = Util.assertAsMap(obj);
response.DeserializedBody = obj;
}
else if (AlibabaCloud.TeaUtil.Common.EqualString(request.BodyType, "array"))
{
response.DeserializedBody = AlibabaCloud.TeaUtil.Common.ReadAsJSON(uncompressedData);
}
else
{
response.DeserializedBody = AlibabaCloud.TeaUtil.Common.ReadAsString(uncompressedData);
}
}
}