Использование curl PHP, как получить тело ответа для ответа 400

Api, который я вызываю, возвращает json-объект ошибок проверки с HTTP-кодом 400. Я реализовал клиент, используя библиотеку curl PHP, но при ошибке curl_exec возвращает false. Как я могу получить тело ответа при ошибке?

Обратите внимание, что я устанавливаю curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

Solutions Collecting From Web of "Использование curl PHP, как получить тело ответа для ответа 400"

Вы можете CURLOPT_FAILONERROR за один раз. И добавление кода ошибки в CURLOPT_HTTP200ALIASES как и ожидалось, также может помочь.

  curl_setopt($conn, CURLOPT_FAILONERROR, false); curl_setopt($conn, CURLOPT_HTTP200ALIASES, (array)400); 

(libcurl также имеет CURLOPT_ERRORBUFFER , но вы не можете использовать эту опцию из PHP.)

Btw, curl ведет себя правильно, не возвращая тело ответа в случае ошибок 4xx. Не уверен, что это может быть переоценено. Поэтому вам, возможно, придется перейти на PEAR HTTP_Request2 или аналогичный класс HTTP-запроса, где вы можете отклоняться от стандарта.

Я смог получить контент из ответа 400, установив FAILONERROR в false, без необходимости также псевдонимов 400 как обычный ответ 200.

Добавь это:

 curl_setopt($ch, CURLOPT_HTTP200ALIASES, array(400));