magento/upward-php

magento clound doesn't handle compressed resonse right

Opened this issue · 0 comments

hi, I deployed app to magento cloud, I got a gzip content on the web page, once I set Accept-encoding below, it work as expected. should we uncompress response automatically ?

resolver/Proxy.php

 public function resolve($definition)
    {
        if (!$definition instanceof Definition) {
            throw new \InvalidArgumentException('$definition must be an instance of ' . Definition::class);
        }

        $target          = $this->getIterator()->get('target', $definition);
        $ignoreSSLErrors = $definition->has('ignoreSSLErrors')
            ? $this->getIterator()->get('ignoreSSLErrors', $definition)
            : false;
        $request            = new \Zend\Http\PhpEnvironment\Request();
        $originalRequestURI = clone $request->getUri();
        $request->setUri($target);
        $request->getUri()->setPath($originalRequestURI->getPath())->setQuery($originalRequestURI->getQuery());
        $requestHeaders = $request->getHeaders();
      
       // decompress automatically
        $requestHeaders->removeHeader('Accept-encoding');
        $requestHeaders->addHeaderLine('Accept-encoding', '');

        if ($requestHeaders && $requestHeaders->has('Host')) {
            $requestHeaders->removeHeader($request->getHeader('Host'));
            $requestHeaders->addHeaderLine('Host', parse_url($target, PHP_URL_HOST));
        }

        $client = new Client(null, [
            'adapter'     => Client\Adapter\Curl::class,
            'curloptions' => [
                CURLOPT_SSL_VERIFYHOST => $ignoreSSLErrors ? 0 : 2,
                CURLOPT_SSL_VERIFYPEER => !$ignoreSSLErrors,
            ],
        ]);

        return $client->send($request);
    }