Как определить верно ли выполнился запрос

Отправляю curl запрос в один сервис. В случае успеха мне возвращается json в виде {"success":"true"} в случае неудачи или какой-то ошибки, мне возвращается страница в виде:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Error Duplicate key</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<h1>Error 409</h1>
<h3>Error description: Duplicate key</h3>
<hr/>
</body>
</html>

Я попробовал добавить curl_getinfo, но там все по 0 приходит почему-то. Как в таком случаем лучше определить успешно ли выполнился запрос или нет. Хочу логировать все запросы и записывать результат.

Сам запрос:

curl_setopt_array($curl, array(
        CURLOPT_URL => "",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => поля,
    ));
    $info = curl_getinfo($curl);
    $response['time'] = $info['total_time'];
    $response['http_code'] = $info['http_code'];
    $response['result'] = curl_exec($curl);
    

    $response = curl_exec($curl);

    curl_close($curl);

Пытался сделать что-то типа json валидации, работает, но мне кажется есть более правильный вариант решения:

$result = json_decode($response['result']);
                                if (json_last_error() === JSON_ERROR_NONE) {
                                    $results = $result->success;
                                    $status = 1;
                                }else{
                                    $results = $response['result'];
                                    $status = 0;
                                }

Ответы (1 шт):

Автор решения: teran

как-то так должно в итоге получится.

$result = curl_exec($curl);
$ok = 200 == curl_info($curl,  CURLINFO_RESPONSE_CODE);
if($ok){
    $data = json_decode($result);
    if($data !== false){
        $result = $data->success;
    }
}
→ Ссылка