public void ModifyResponse()

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);
                }
            }
        }