<?php $request = new Curl\Request('http://google.com'); $request->setTimeout(30)->setConnectionTimeout(5)->setAllowRedirect(true, 5)->setRefererUrl('http://some.url'); $request->setHeaders(array('Accept: text/html', 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0'))->addHeaders(array('Cache-Control: max-age=0')); $request->setOptions(array(CURLOPT_VERBOSE => false, CURLOPT_FAILONERROR => true))->addOptions(array(CURLINFO_HEADER_OUT => true)); $request->on('beforeSend', function ($request, Curl\Request $request) { // before send the request })->on('success', function (Curl\Response\PlainResponse $response, Curl\Request $request) { // if response has no error // $response->hasError() retuned false })->on('error', function (Curl\Response\PlainResponse $response, Curl\Request $request) { // if response has an error // $response->hasError() retuned true })->on('compete', function (Curl\Response\PlainResponse $response, Curl\Request $request) { // always on complete request }); $response = $request->send(); // retrieve request info $info = $response->getInfo(); var_dump($response->getInfo(true)->http_code, $info['content_type']); /** * Custom Response class */ class CustomResponse extends Curl\Response\PlainResponse { /** * (non-PHPdoc) * @see Curl.Response::hasError() */ public function hasError()