/**
* @param resource $stream
*/
private function checkDecode(array
$options, array
$headers,
$stream): array
{ // Automatically decode responses when instructed.
if (!
empty($options['decode_content'
])) { $normalizedKeys = Utils::
normalizeHeaderKeys($headers);
if (isset($normalizedKeys['content-encoding'
])) { $encoding =
$headers[$normalizedKeys['content-encoding'
]];
if ($encoding[0
] === 'gzip' ||
$encoding[0
] === 'deflate'
) { $stream =
new Psr7\
InflateStream(Psr7\Utils::
streamFor($stream));
$headers['x-encoded-content-encoding'
] =
$headers[$normalizedKeys['content-encoding'
]];
// Remove content-encoding header
unset($headers[$normalizedKeys['content-encoding'
]]);
// Fix content-length header
if (isset($normalizedKeys['content-length'
])) { $headers['x-encoded-content-length'
] =
$headers[$normalizedKeys['content-length'
]];
$length =
(int) $stream->
getSize();
if ($length === 0
) { unset($headers[$normalizedKeys['content-length'
]]);
}