public function modifyResponse()

in alibabacloud-gateway-sls/php/src/Client.php [225:271]


    public function modifyResponse($context, $attributeMap){
        $request = $context->request;
        $response = $context->response;
        if (Utils::is4xx($response->statusCode) || Utils::is5xx($response->statusCode)) {
            $error = Utils::readAsJSON($response->body);
            $resMap = Utils::assertAsMap($error);
            throw new TeaError([
                "code" => @$resMap["errorCode"],
                "message" => @$resMap["errorMessage"],
                "accessDeniedDetail" => @$resMap["accessDeniedDetail"],
                "data" => [
                    "httpCode" => $response->statusCode,
                    "requestId" => @$response->headers["x-log-requestid"],
                    "statusCode" => $response->statusCode
                ]
            ]);
        }
        if (!Utils::isUnset($response->body)) {
            $bodyrawSize = @$response->headers["x-log-bodyrawsize"];
            $compressType = @$response->headers["x-log-compresstype"];
            $uncompressedData = $response->body;
            if (!Utils::isUnset($bodyrawSize) && !Utils::isUnset($compressType)) {
                $uncompressedData = DarabonbaGatewaySlsUtilClient::readAndUncompressBlock($response->body, $compressType, $bodyrawSize);
            }
            if (Utils::equalString($request->bodyType, "binary")) {
                $response->deserializedBody = $uncompressedData;
            }
            else if (Utils::equalString($request->bodyType, "byte")) {
                $byt = Utils::readAsBytes($uncompressedData);
                $response->deserializedBody = $byt;
            }
            else if (Utils::equalString($request->bodyType, "string")) {
                $response->deserializedBody = Utils::readAsString($uncompressedData);
            }
            else if (Utils::equalString($request->bodyType, "json")) {
                $obj = Utils::readAsJSON($uncompressedData);
                // var res = Util.assertAsMap(obj);
                $response->deserializedBody = $obj;
            }
            else if (Utils::equalString($request->bodyType, "array")) {
                $response->deserializedBody = Utils::readAsJSON($uncompressedData);
            }
            else {
                $response->deserializedBody = Utils::readAsString($uncompressedData);
            }
        }
    }