1.0.0 Alpha Release #59
1 changed files with 19 additions and 1 deletions
|
@ -6,6 +6,7 @@
|
|||
use ncc\Exceptions\HttpException;
|
||||
use ncc\Objects\HttpRequest;
|
||||
use ncc\Objects\HttpResponse;
|
||||
use ncc\Objects\HttpResponseCache;
|
||||
|
||||
class HttpClient
|
||||
{
|
||||
|
@ -13,11 +14,22 @@
|
|||
* Creates a new HTTP request and returns the response.
|
||||
*
|
||||
* @param HttpRequest $httpRequest
|
||||
* @param bool $cache
|
||||
* @return HttpResponse
|
||||
* @throws HttpException
|
||||
*/
|
||||
public static function request(HttpRequest $httpRequest): HttpResponse
|
||||
public static function request(HttpRequest $httpRequest, bool $cache=false): HttpResponse
|
||||
{
|
||||
if($cache)
|
||||
{
|
||||
/** @var HttpResponseCache $cache */
|
||||
$cache = RuntimeCache::get(sprintf('http_cache_%s', $httpRequest->requestHash()));
|
||||
if($cache !== null && $cache->getTtl() > time())
|
||||
{
|
||||
return $cache->getHttpResponse();
|
||||
}
|
||||
}
|
||||
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $httpRequest->Url);
|
||||
|
@ -100,6 +112,12 @@
|
|||
|
||||
curl_close($curl);
|
||||
|
||||
if($cache)
|
||||
{
|
||||
$httpCacheObject = new HttpResponseCache($httpResponse, 60);
|
||||
RuntimeCache::set(sprintf('http_cache_%s', $httpRequest->requestHash()), $httpCacheObject);
|
||||
}
|
||||
|
||||
return $httpResponse;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue