Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getProtocolVersions example
$uri
=
$request
->
getUri
(
)
;
$requestUri
=
$uri
->
getPath
(
)
?: '/';
if
(
'' !==
$query
=
$uri
->
getQuery
(
)
)
{
$requestUri
.= '?'.
$query
;
}
if
(
'CONNECT' ===
$method
=
$request
->
getMethod
(
)
)
{
$requestUri
=
$uri
->
getHost
(
)
.': '.
(
$uri
->
getPort
(
)
??
(
'https' ===
$uri
->
getScheme
(
)
? 443 : 80
)
)
;
}
$this
->info
[
'debug'
]
.=
sprintf
(
"> %s %s HTTP/%s \r\n",
$method
,
$requestUri
,
$request
->
getProtocolVersions
(
)
[
0
]
)
;
foreach
(
$request
->
getRawHeaders
(
)
as
[
$name
,
$value
]
)
{
$this
->info
[
'debug'
]
.=
$name
.': '.
$value
."\r\n";
}
$this
->info
[
'debug'
]
.= "\r\n";
return
new
Success
(
)
;
}
public
function
completeSendingRequest
(
Request
$request
, Stream
$stream
)
: Promise
{
(
}
catch
(
HttpException|StreamException
)
{
// Ignore streaming errors on previous responses
}
++
$info
[
'redirect_count'
]
;
$info
[
'url'
]
=
$info
[
'redirect_url'
]
;
$info
[
'redirect_url'
]
= null;
$previousUrl
=
$location
;
$request
=
new
Request
(
$info
[
'url'
]
,
$info
[
'http_method'
]
)
;
$request
->
setProtocolVersions
(
$originRequest
->
getProtocolVersions
(
)
)
;
$request
->
setTcpConnectTimeout
(
$originRequest
->
getTcpConnectTimeout
(
)
)
;
$request
->
setTlsHandshakeTimeout
(
$originRequest
->
getTlsHandshakeTimeout
(
)
)
;
$request
->
setTransferTimeout
(
$originRequest
->
getTransferTimeout
(
)
)
;
if
(
\
in_array
(
$status
,
[
301, 302, 303
]
, true
)
)
{
$originRequest
->
removeHeader
(
'transfer-encoding'
)
;
$originRequest
->
removeHeader
(
'content-length'
)
;
$originRequest
->
removeHeader
(
'content-type'
)
;
// Do like curl and browsers: turn POST to GET on 301, 302 and 303
if
(
'POST' ===
$response
->
getRequest
(
)
->
getMethod
(
)
|| 303 ===
$status
)
{