使用頻度高いのでテンプレートってことでメモ
確認環境
コード
<?php
$params = [
'key' => 'value'
];
$url = 'https://httpbin.org/get?' . http_build_query($params);
$curl = curl_init();
$curl_options = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_FAILONERROR => true
];
curl_setopt_array($curl, $curl_options);
$response = curl_exec($curl);
$info = curl_getinfo($curl);
if (curl_errno($curl)) {
$error = curl_error($curl);
echo $error;
}
curl_close($curl);
if(!isset($error)) {
$json = json_decode($response);
var_export($json);
}
エラーの場合、$errorにエラーメッセージがセットされる。
詳しいレスポンス情報を見たい
curl_close()
する前に curl_getinfo()
すると詳細を取得できる。
<?php
$info = curl_getinfo($curl);
var_export($info);
すると以下のようなデータを取得できる
array (
'url' => 'https://httpbin.org/status/500?key=value',
'content_type' => NULL,
'http_code' => 500,
'header_size' => 0,
'request_size' => 68,
'filetime' => -1,
'ssl_verify_result' => 0,
'redirect_count' => 0,
'total_time' => 0.705413,
'namelookup_time' => 0.001785,
'connect_time' => 0.175847,
'pretransfer_time' => 0.518781,
'size_upload' => 0.0,
'size_download' => 0.0,
'speed_download' => 0.0,
'speed_upload' => 0.0,
'download_content_length' => -1.0,
'upload_content_length' => -1.0,
'starttransfer_time' => 0.705382,
'redirect_time' => 0.0,
'redirect_url' => '',
'primary_ip' => '3.220.112.94',
'certinfo' =>
array (
),
'primary_port' => 443,
'local_ip' => '172.17.0.3',
'local_port' => 45232,
'http_version' => 3,
'protocol' => 2,
'ssl_verifyresult' => 0,
'scheme' => 'HTTPS',
'appconnect_time_us' => 518414,
'connect_time_us' => 175847,
'namelookup_time_us' => 1785,
'pretransfer_time_us' => 518781,
'redirect_time_us' => 0,
'starttransfer_time_us' => 705382,
'total_time_us' => 705413,
)