Swoole Async HTTP/Websocket client

Swoole Async HTTP client is a high performance and aync HTTP client supports Http-Chunk, Keep-Alive, form-data.

Events

public Swoole\Http\Client::\_\_construct ( string $host [, string $port [, boolean $ssl ]] )

Alias: swoole_http_client::__construct

Example:

<?php
Swoole\Async::dnsLookup("www.google.com", function ($domainName, $ip) {
    $cli = new swoole_http_client($ip, 80);
    $cli->setHeaders([
        'Host' => $domainName,
        "User-Agent" => 'Chrome/49.0.2587.3',
        'Accept' => 'text/html,application/xhtml+xml,application/xml',
        'Accept-Encoding' => 'gzip',
    ]);
    $cli->get('/index.html', function ($cli) {
        echo "Length: " . strlen($cli->body) . "\n";
        echo $cli->body;
    });
});

public void Swoole\Http\Client::set ( array $settings )

Alias: swoole_http_client::set

Set the parameters for the http client.

Example:

<?php
// Set the connect timeout
$http->set(['timeout' => 3.0]);
// Set the keep alive option
$http->set(['keep_alive' => false]);
// Set websocket mask
$http->set(['websocket_mask' => true]);

public void Swoole\Http\Client::setMethod ( string $method )

Alias: swoole_http_client::setMethod

Set the http request method.

Example:

<?php
$client->setMethod("PUT");

public void Swoole\Http\Client::setHeaders ( array $headers )

Alias: swoole_http_client::setHeaders

Set the http request headers.

public void Swoole\Http\Client::setCookies ( array $cookies )

Alias: swoole_http_client::setCookies

Set the http request cookies.

public void Swoole\Http\Client::setData ( string $data )

Alias: swoole_http_client::setData

Set the http request body data. The http method will be changed to be POST.

public void Swoole\Http\Client::addFile ( string $path , string $name [, string $type [, string $filename [, string $offset ]]] )

Alias: swoole_http_client::addFile

Add files to the post form.

Example:

<?php

<?php
$cli = new swoole_http_client('127.0.0.1', 80);
//post request
$cli->setHeaders(['User-Agent' => "swoole"]);
$cli->addFile(__DIR__.'/post.data', 'post');
$cli->addFile(dirname(__DIR__).'/test.jpg', 'debug');
$cli->post('/dump2.php', array("xxx" => 'abc', 'x2' => 'rango'), function ($cli) {
    echo $cli->body;
});

public void Swoole\Http\Client::on ( string $event_name , callable $callback )

Alias: swoole_http_client::on

Register callback function by event name.

public void Swoole\Http\Client::get ( string $path , callable $callback )

Alias: swoole_http_client::get

Send GET http request to the remote server.

Example:

<?php

$cli = new swoole_http_client('127.0.0.1', 80);

$cli->setHeaders([
    'Host' => "localhost",
    "User-Agent" => 'Chrome/49.0.2587.3',
    'Accept' => 'text/html,application/xhtml+xml,application/xml',
    'Accept-Encoding' => 'gzip',
]);

$cli->get('/index.php', function ($cli) {
    echo "Length: " . strlen($cli->body) . "\n";
    echo $cli->body;
});

public void Swoole\Http\Client::post ( string $path , string $data , callable $callback )

Alias: swoole_http_client::post

Send POST http request to the remote server.

Example:

<?php

$cli = new swoole_http_client('127.0.0.1', 80); 
$cli->post('/post.php', array("a" => '1234', 'b' => '456'), function ($cli) {
    echo "Length: " . strlen($cli->body) . "\n";
    echo $cli->body;
});

public void Swoole\Http\Client::upgrade ( string $path , string $callback )

Alias: swoole_http_client::upgrade

Upgrade to websocket protocol.

<?php
$cli = new swoole_http_client('127.0.0.1', 9501);

$cli->on('message', function ($_cli, $frame) {
    var_dump($frame);
});

$cli->upgrade('/', function ($cli) {
    echo $cli->body;
    $cli->push("hello world");
});
// Websocket callback function
function onMessage(swoole_http_client $client, swoole_websocket_frame $frame);

public void Swoole\Http\Client::execute ( string $path , string $callback )

Alias: swoole_http_client::execute

Send the HTTP request after setting the parameters.

public void Swoole\Http\Client::download ( string $path , string $file , callable $callback [, integer $offset ] )

Alias: swoole_http_client::download

Download file from the remote server.

Example:

<?php

$cli = new swoole_http_client('127.0.0.1', 80);

$cli->setHeaders([
    'Host' => "localhost",
    "User-Agent" => 'Chrome/49.0.2587.3',
    'Accept' => '*',
    'Accept-Encoding' => 'gzip',
]);

$cli->download('/video.avi', __DIR__.'/video.avi', function ($cli) {
    var_dump($cli->downloadFile);
});

// download by range
$cli = new swoole_http_client('127.0.0.1', 80);
$file = __DIR__.'/video.avi';
$offset = filesize($file);
$cli->setHeaders([
    'Host' => "localhost",
    "User-Agent" => 'Chrome/49.0.2587.3',
    'Accept' => '*',
    'Accept-Encoding' => 'gzip',
    'Range' => "bytes=$offset-",
]);

$cli->download('/video.avi', $file, function ($cli) {
    var_dump($cli->downloadFile);
}, $offset);

public void Swoole\Http\Client::push ( string $data [, string $opcode [, string $finish ]] )

Alias: swoole_http_client::push

Push data to websocket client.

public boolean Swoole\Http\Client::isConnected ( void )

Class alias: swoole_http_client::isConnected

Check if the http connection is connected.

public void Swoole\Http\Client::close ( void )

Class alias: swoole_http_client::close

Close the http connection.