Class Stream
Implements sending Cake\Http\Client\Request via php's stream API.
This approach and implementation is partly inspired by Aura.Http
Property Summary
-
$_connectionErrors protected
array
Connection error list.
-
$_context protected
resource|null
Context resource used by the stream API.
-
$_contextOptions protected
array
Array of options/content for the HTTP stream context.
-
$_sslContextOptions protected
array
Array of options/content for the SSL stream context.
-
$_stream protected
resource|null
The stream resource.
Method Summary
-
_buildContent() protected
Builds the request content based on the request object.
-
_buildContext() protected
Build the stream context out of the request object.
-
_buildHeaders() protected
Build the header context for the request.
-
_buildOptions() protected
Build miscellaneous options for the request.
-
_buildResponse() protected
Build a response object
-
_buildSslContext() protected
Build SSL options for the request.
-
_open() protected
Open the socket and handle any connection errors.
-
_send() protected
Open the stream and send the request.
-
contextOptions() public
Get the context options
-
createResponses() public
Create the response list based on the headers & content
-
send() public
Send a request and get a response back.
Method Detail
_buildContent() ¶ protected
_buildContent(Cake\Http\Client\Request $request, array $options): void
Builds the request content based on the request object.
If the $request->body() is a string, it will be used as is. Array data will be processed with Cake\Http\Client\FormData
Parameters
-
Cake\Http\Client\Request
$request The request being sent.
-
array
$options Array of options to use.
Returns
void
_buildContext() ¶ protected
_buildContext(Cake\Http\Client\Request $request, array $options): void
Build the stream context out of the request object.
Parameters
-
Cake\Http\Client\Request
$request The request to build context from.
-
array
$options Additional request options.
Returns
void
_buildHeaders() ¶ protected
_buildHeaders(Cake\Http\Client\Request $request, array $options): void
Build the header context for the request.
Creates cookies & headers.
Parameters
-
Cake\Http\Client\Request
$request The request being sent.
-
array
$options Array of options to use.
Returns
void
_buildOptions() ¶ protected
_buildOptions(Cake\Http\Client\Request $request, array $options): void
Build miscellaneous options for the request.
Parameters
-
Cake\Http\Client\Request
$request The request being sent.
-
array
$options Array of options to use.
Returns
void
_buildResponse() ¶ protected
_buildResponse(array $headers, string $body): Cake\Http\Client\Response
Build a response object
Parameters
-
array
$headers Unparsed headers.
-
string
$body The response body.
Returns
Cake\Http\Client\Response
_buildSslContext() ¶ protected
_buildSslContext(Cake\Http\Client\Request $request, array $options): void
Build SSL options for the request.
Parameters
-
Cake\Http\Client\Request
$request The request being sent.
-
array
$options Array of options to use.
Returns
void
_open() ¶ protected
_open(string $url): void
Open the socket and handle any connection errors.
Parameters
-
string
$url The url to connect to.
Returns
void
Throws
Cake\Core\Exception\Exception
_send() ¶ protected
_send(Cake\Http\Client\Request $request): array
Open the stream and send the request.
Parameters
-
Cake\Http\Client\Request
$request The request object.
Returns
array
Throws
Cake\Network\Exception\HttpException
contextOptions() ¶ public
contextOptions(): array
Get the context options
Useful for debugging and testing context creation.
Returns
array
createResponses() ¶ public
createResponses(array $headers, string $content): Cake\Http\Client\Response[]
Create the response list based on the headers & content
Creates one or many response objects based on the number of redirects that occurred.
Parameters
-
array
$headers The list of headers from the request(s)
-
string
$content The response content.
Returns
Cake\Http\Client\Response[]
send() ¶ public
send(Cake\Http\Client\Request $request, array $options): array
Send a request and get a response back.
Parameters
-
Cake\Http\Client\Request
$request The request object to send.
-
array
$options Array of options for the stream.
Returns
array