Http Request and Response object, IRequestDownloader interface and HttpException base class. For curl implementation see https://github.com/solcloud/curl
$request = new \Solcloud\Http\Request();
$request
->setUrl('https://www.google.com/')
->setConnectionTimeoutSec(1)
->setRequestTimeoutSec(2)
->setHeaders([
'X-header: x-value',
])
->setReferer('about:blank')
->setUserAgent('solcloud-curl')
;
$response = new \Solcloud\Http\Response();
$response->setBody('response body');
$response->setStatusCode(200);
interface IRequestDownloader
{
public function fetchResponse(Request $request): Response;
}