/** * test send a copy of request */ public function testCloneRequest() { $request = Curl\Request::newRequest($this->getTestCallbackUrl()); $params = array('param1' => 1, 'param2' => 2); $request->setMethod('POST')->addPostParams($params); $result = json_decode($request->send(), true); $this->assertInternalType('array', $result); $this->assertArrayHasKey('param2', $result['params']); $result = null; try { $result = $request->send(); } catch (\BadMethodCallException $e) { } $this->assertNull($result); $request2 = clone $request; $result = $result = json_decode($request2->send(), true); $this->assertInternalType('array', $result); $this->assertArrayHasKey('param2', $result['params']); }
<?php $request = new Curl\Request(); $request->setUrl('http://google.com'); // or $request = Curl\Request::newRequest('http://google.com'); // making POST request $request = Curl\Request::newRequest('http://example.com', 'POST', array('param1' => 1, 'param2' => 2)); // add attachments $request->attachFiles(array('file' => 'filename.txt', 'file2' => array('filename1.txt', 'filename2.txt'))); $response = $request->getResponse(); // or $response = $request->send(); echo $response->getContent(); // or echo $response;
/** * (non-PHPdoc) * @see Curl.Response::hasError() */ public function hasError() { return parent::hasError() && 200 != $this->getInfo(true)->http_code; } } // use custom response class // it must implement the Curl\IResponse interface $request->setResponseClass('CustomResponse'); var_dump($request->send()->hasError()); // set response type /* @var $response Curl\Response\XMLResponse */ $response = $request->setResponseType('xml')->send(); var_dump($response, $response->toArray()); // use curl_multi $executor = new Curl\MultiExecutor(); // define a number of concurrent requests $executor->setConcurrentRequestsLimit(2); // set common options to all requests $executor->setCommonRequestOptions(array(CURLOPT_AUTOREFERER => 1, 'headers' => array(), Curl\Request::EVENT_BEFORE_SEND => function () { /* do something */ })); // NOTE: it's important to define common options BEFORE call Curl\MultiExecutor::addRequest() for ($i = 0; $i < 10; $i++) { $executor->addRequest(Curl\Request::newRequest('https://google.com')); } // run executor $executor->execute();