$request =
clone $request;
if ($request->
hasHeader('proxy-authorization'
)) { $request->
removeHeader('proxy-authorization'
);
} if ($options['capture_peer_cert_chain'
]) { $info['peer_certificate_chain'
] =
[];
} $request->
addEventListener(new AmpListener($info,
$options['peer_fingerprint'
]['pin-sha256'
] ??
[],
$onProgress,
$handle));
$request->
setPushHandler(fn ($request,
$response): Promise =>
$this->
handlePush($request,
$response,
$options));
($request->
hasHeader('content-length'
) ?
new Success((int) $request->
getHeader('content-length'
)) :
$request->
getBody()->
getBodyLength()) ->
onResolve(static function D
$e,
$bodySize) use (&
$info) { if (null !==
$bodySize && 0 <=
$bodySize) { $info['upload_content_length'
] =
((1 +
$info['upload_content_length'
]) ?? 1
) - 1 +
$bodySize;
} });
[$client,
$connector] =
$this->
getClient($options);
$response =
$client->
request($request,
$cancellation);
$response->
onResolve(static function D
$e) use ($connector, &
$handle) {