Использование Kohana Remote :: get выдает исключение по http 500, но мне нужен текст ответа

Я делаю Remote::get запрос к API, который отвечает с http 500 когда что-то идет не так. Дело в том, что это также дает {errorCode: x} как более подробное описание того, что пошло не так в тексте ответа. На некоторых кодах ошибок мне нужно предпринять разные действия.

Моя проблема в том, что Кохана выбрасывает исключение на http 500 ответы и, следовательно, запекает в моем легко разбираемом тексте ответа в «словесное» сообщение об ошибке в объекте исключения.

Есть ли способ получить текст ответа Remote::get на http 500 ответ без необходимости разбирать длинное описание ошибки?

0

Решение

Невозможно. Взгляни на исходный код

if ($code AND $code < 200 OR $code > 299)
{
$error = $response;
}

...

if (isset($error))
{
throw new Kohana_Exception('Error fetching remote :url [ status :code ] :error',
array(':url' => $url, ':code' => $code, ':error' => $error));
}

Kohana_Exception не сильно помогает

public function __construct($message, array $variables = NULL, $code = 0)
{
// Set the message
$message = __($message, $variables);

// Pass the message to the parent
parent::__construct($message, $code);
}

Так что все вещи объединены в одно сообщение.

Как насчет использования другого HTTP-клиента? Например пропивать — легче вернуть тело по ошибке.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector