Request::GET()
\nn\t3::Request()->GET($url = '', $queryParams = [], $headers = [], $dontNestArrays = false);
Sends a GET request (via curl) to a server
\nn\t3::Request()->GET( 'https://...', ['a'=>'123'] );
\nn\t3::Request()->GET( 'https://...', ['a'=>'123'], ['Accept-Encoding'=>'gzip, deflate'] );
// if 'a'=>[1,2,3] should be sent as a=1&a=2&a=3 instead of a[]=1&a[]=2&a[]=3
\nn\t3::Request()->GET( 'https://...', ['a'=>[1,2,3]], [], true );
Copied!
@param string $url
@param array $queryParams
@param array $headers
@return array
Source Code
public function GET( $url = '', $queryParams = [], $headers = [], $dontNestArrays = false )
{
// ['Accept-Encoding'=>'gzip'] --> ['Accept-Encoding: gzip']
array_walk( $headers, function (&$v, $k) {
if (!is_numeric($k)) $v = $k . ': ' . $v;
});
$headers = array_values($headers);
$url = $this->mergeGetParams($url, $queryParams, $dontNestArrays);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers );
// follow redirects
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($httpcode >= 300) {
return [
'error' => true,
'status' => $httpcode,
'content' => $error,
'response' => @json_decode($result, true) ?: $result,
];
}
return [
'error' => false,
'status' => 200,
'content' => $result,
];
}
Copied!