magento clound doesn't handle compressed resonse right
Opened this issue · 0 comments
vidyli commented
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);
}