Join 4,000+ others and never miss out on new tips, tutorials, and more.
4.x is outdated, please check the latest version 22.x
Latest version:
pecl install openswoole-22.1.2
When sending a request using the HTTP/2 Client it expects a Swoole\Http2\Request
object, you build up this object before you call send()
, this is what the client will use when sending the request to the remote host, based on the settings within the object given.
The Swoole\Http2\Request
object does not have any methods, only public class properties which you can set to build a request you want to send.
The request object is built up of the following:
<?php
object(Swoole\Http2\Request)#3 (6) {
["path"]=>
string(1) "/"
["method"]=>
string(3) "GET"
["headers"]=>
NULL
["cookies"]=>
NULL
["data"]=>
string(0) ""
["pipeline"]=>
bool(false)
}
All the above class properties are public, meaning you can set values by doing for example: $request->path = '/home/account'
. You should use this object to build up a request and send it off using send()
.
Class Properties
path
: Is a string where you set the URL you want to send a request to. It must begin with a /
and not need to include the protocol or domain, just the URL path like /home/user/account
for example. Or /index/php?a=2&b=2
.
method
: Is a string which contains the HTTP request type you are sending, so this could be a GET, POST, PUT etc.
headers
: This property is a key-value array of headers you want to send during the request.
cookies
: Is a key-value array of cookie data to send during the request.
data
: Is a property which is what will be used as the HTTP request body. If a string is used, this will just be placed as the body content. If an array is used, the client will automatically convert it using the x-www-form-urlencoded
format, the Content-Type
header will be set as well.
pipeline
: Is a boolean used to decide if you want to keep the stream open or not, if set to true
it allows you to continue writing to the stream. Default is false
, so the stream is closed for you. For more information and an example see the write()
method.
Check the main Quick Start Examples to see how the request object is used in its full context. But the following is a general example:
<?php
// Create and build a request that will be sent...
$request = new Swoole\Http2\Request();
// Set the URL path
$request->path = "/index.php";
// Setup request headers to use
$request->headers = [
'host' => "localhost",
"user-agent" => 'Chrome/49.0.2587.3',
'accept' => 'text/html,application/xhtml+xml,application/xml',
'accept-encoding' => 'gzip',
];
// Add cookies to the request
$request->cookies = ['name' => 'hello', 'email' => '[email protected]'];
...