Example #1
0
$request->addPostFile('upload2', __FILE__);
$response = $http->exec($request);
echo number_format(strlen($response)) . ' bytes', PHP_EOL;
echo $response, PHP_EOL;
echo '9. multiple get requests in parallel ... ', PHP_EOL;
// define callback as normal function
function test_cb($res, $req, $key)
{
    echo '   ', $req->getUrl(), ', ', number_format(strlen($res)), ' bytes in ', sprintf('%.4f', $res->timeCost), 's', PHP_EOL;
    // even you can redirect HERE
    if ($key === 'baidu' && !strstr($req->getUrl(), 'czxiu')) {
        $res->redirect('http://www.czxiu.com');
    }
}
$http->setParser('test_cb');
$responses = $http->mget(['baidu' => 'http://www.baidu.com', 'sina' => 'http://news.sina.com.cn', 'qq' => 'http://www.qq.com']);
echo '10. process multiple various requests in parallel ... ', PHP_EOL;
// define callback as object
class testCb implements \hightman\http\ParseInterface
{
    public function parse(Response $res, Request $req, $key)
    {
        echo '    ', $req->getMethod(), ' /', $key, ' finished, ', number_format(strlen($res)), ' bytes in ', sprintf('%.4f', $res->timeCost), 's', PHP_EOL;
    }
}
// construct requests
$requests = [];
$requests['version'] = new Request('http://api.mcloudlife.com/api/version', 'POST');
$requests['baidu'] = new Request('http://www.baidu.com/s?wd=php');
$request = new Request('http://api.mcloudlife.com/open/auth/token');
$request->setMethod('POST');