Как правильно обрабатывать исключение Guzzle ClientException? Могу ли я поместить свой вызов в что-то вроде блока try try Java в PHP?

Я абсолютный новичок в PHP (Я пришел с Java), и у меня есть следующая проблема, связанная с тем, как обрабатывать исключение

я использую пропивать выполнить звонок ОСТАЛЬНОЕ веб-сервис, что-то вроде этого:

    $client = new Client(); //GuzzleHttp\Client

$response = $client->get('http://localhost:8080/Extranet/login',
[
'auth' => [
$credentials['email'],
$credentials['password']
]
]);

$dettagliLogin = json_decode($response->getBody());

Если в ответе мой веб-сервис возвращает существующую информацию о пользователе, у меня нет проблем.

Если пользователь не существует, мой веб-сервис возвращает что-то вроде этого:

[2017-01-30 11:24:44] local.INFO: INSERTED USER CREDENTIAL: [email protected] dddd
[2017-01-30 11:24:44] local.ERROR: exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: `GET http://localhost:8080/Extranet/login` resulted in a `401 Unauthorized` response:
{"timestamp":1485775484609,"status":401,"error":"Unauthorized","message":"Bad credentials","path":"/Extranet/login"}

Так что мне кажется, что в этом случае клиент бросает ClientException.

Я сомневаюсь, могу ли я поставить это $ Client-> прибудет (…) в нечто вроде Java попробуй поймать блок, так что если ClientException ловится ли я справиться с этим, создавая пользовательский ответ?

Tnx

0

Решение

Если вы хотите использовать аналогичный попробуйте поймать блок.

Вы можете использовать исключение Guzzle, как указано здесь:

http://docs.guzzlephp.org/en/latest/quickstart.html#exceptions
http://docs.guzzlephp.org/en/latest/request-options.html#http-errors

Я вытащил код из вышеупомянутых документов:

use GuzzleHttp\Psr7;
use GuzzleHttp\Exception\RequestException;

try {
$client->request('GET', 'http://localhost:8080/Extranet/login');
} catch (RequestException $e) {
echo Psr7\str($e->getRequest());
if ($e->hasResponse()) {
echo Psr7\str($e->getResponse());
}
}

Вы можете изменить и обработать исключение для любых целей.

3

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

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

По вопросам рекламы [email protected]