HttpClient
in package
Table of Contents
- $agents : array<string|int, mixed>
- $apiKey : string|null
- $baseUrl : string
- $context : DotAccess
- $headers : array<string|int, mixed>
- $httpResponse : array<string|int, mixed>
- $referrer : string|null
- $streamOpts : array<string|int, mixed>
- $userAgent : string
- __construct() : mixed
- context() : DotAccess
- get() : array<string|int, mixed>
- getJson() : array<string|int, mixed>
- Convenience: GET and decode JSON.
- post() : array<string|int, mixed>
- postJson() : array<string|int, mixed>
- Convenience: POST with JSON payload and decode.
- setReferrer() : void
- setUserAgent() : void
- getDefaultHeaders() : array<string|int, string>
- curl() : array<string|int, mixed>
- cURL with retries on 429, raw JSON support.
- curlRawJson() : array<string|int, mixed>
- Raw JSON via cURL.
- getCaBundle() : string
- hasContentType() : bool
- isPrivateIp() : bool
- request() : array<string|int, mixed>
- Main HTTP request with stream context, retries on 429.
- sanitizeEndpoint() : string
- Sanitize endpoint to prevent SSRF and injection.
- sanitizeHeader() : string
- Sanitize header line: validate name and strip CR/LF.
- setHttpResponse() : void
- throwError() : void
- Generic thrower: hides details unless debug is true.
Properties
$agents
private
array<string|int, mixed>
$agents
= ['moz' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...', 'chrome' => 'Mozilla/5.0 (Windows NT 10.0; WOW64)...', 'safari' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6)...']
$apiKey
private
string|null
$apiKey
$baseUrl
private
string
$baseUrl
$context
private
DotAccess
$context
$headers
private
array<string|int, mixed>
$headers
= []
$httpResponse
private
array<string|int, mixed>
$httpResponse
= []
$referrer
private
string|null
$referrer
= null
$streamOpts
private
array<string|int, mixed>
$streamOpts
= []
$userAgent
private
string
$userAgent
Methods
__construct()
public
__construct(string $baseUrl[, array<string|int, mixed> $context = [] ]) : mixed
Parameters
- $baseUrl : string
- $context : array<string|int, mixed> = []
Return values
mixed —context()
public
context() : DotAccess
Return values
DotAccess —get()
public
get(string $endpoint[, array<string|int, mixed> $headers = [] ]) : array<string|int, mixed>
Parameters
- $endpoint : string
- $headers : array<string|int, mixed> = []
Return values
array<string|int, mixed> —getJson()
Convenience: GET and decode JSON.
public
getJson(string $endpoint[, array<string|int, mixed> $headers = [] ]) : array<string|int, mixed>
Parameters
- $endpoint : string
- $headers : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed> —post()
public
post(string $endpoint[, array<string|int, mixed> $data = [] ][, array<string|int, mixed> $headers = [] ]) : array<string|int, mixed>
Parameters
- $endpoint : string
- $data : array<string|int, mixed> = []
- $headers : array<string|int, mixed> = []
Return values
array<string|int, mixed> —postJson()
Convenience: POST with JSON payload and decode.
public
postJson(string $endpoint, mixed $payload[, array<string|int, mixed> $headers = [] ]) : array<string|int, mixed>
Parameters
- $endpoint : string
- $payload : mixed
- $headers : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed> —setReferrer()
public
setReferrer(string $referrer) : void
Parameters
- $referrer : string
Return values
void —setUserAgent()
public
setUserAgent(string $userAgent) : void
Parameters
- $userAgent : string
Return values
void —getDefaultHeaders()
protected
getDefaultHeaders() : array<string|int, string>
Tags
Return values
array<string|int, string> —curl()
cURL with retries on 429, raw JSON support.
private
curl(string $endpoint, string $method, array<string|int, mixed> $data, array<string|int, mixed> $headers) : array<string|int, mixed>
Parameters
- $endpoint : string
- $method : string
- $data : array<string|int, mixed>
- $headers : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —curlRawJson()
Raw JSON via cURL.
private
curlRawJson(string $endpoint, string $method, string $body, array<string|int, mixed> $headers) : array<string|int, mixed>
Parameters
- $endpoint : string
- $method : string
- $body : string
- $headers : array<string|int, mixed>
Return values
array<string|int, mixed> —getCaBundle()
private
getCaBundle() : string
Return values
string —hasContentType()
private
hasContentType(array<string|int, mixed> $headers) : bool
Parameters
- $headers : array<string|int, mixed>
Return values
bool —isPrivateIp()
private
isPrivateIp(string $host) : bool
Parameters
- $host : string
Return values
bool —request()
Main HTTP request with stream context, retries on 429.
private
request(string $endpoint, string $method, array<string|int, mixed> $data, array<string|int, mixed> $headers) : array<string|int, mixed>
Parameters
- $endpoint : string
- $method : string
- $data : array<string|int, mixed>
- $headers : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —sanitizeEndpoint()
Sanitize endpoint to prevent SSRF and injection.
private
sanitizeEndpoint(string $endpoint) : string
Parameters
- $endpoint : string
Tags
Return values
string —sanitizeHeader()
Sanitize header line: validate name and strip CR/LF.
private
sanitizeHeader(string $line) : string
Parameters
- $line : string
Return values
string —setHttpResponse()
private
setHttpResponse(array<string|int, mixed> $headerLines, string $body) : void
Parameters
- $headerLines : array<string|int, mixed>
- $body : string
Return values
void —throwError()
Generic thrower: hides details unless debug is true.
private
throwError(string $detailed, string $generic) : void
Parameters
- $detailed : string
- $generic : string