Guzzle로 처리되지 않은 예외 방지
API를 테스트할 때 예외로 인해 실행이 중단되지 않도록 HTTP 오류를 처리하는 것이 중요합니다. Guzzle은 이러한 예외를 포착할 수 있는 방법을 제공하지만 때로는 코드에서 여전히 처리되지 않은 예외가 발생할 수 있습니다.
현재 직면한 문제는 Guzzle에 대한 예외를 비활성화하여 해결할 수 있습니다. 이를 통해 예외를 방해하지 않고 상태 코드를 수동으로 처리할 수 있습니다. 이를 달성하는 방법은 다음과 같습니다.
Guzzle 3
$client = new \Guzzle\Http\Client($httpBase, array( 'request.options' => array( 'exceptions' => false, ) ));
Guzzle 5.3
$client = new \GuzzleHttp\Client(['defaults' => [ 'exceptions' => false ]] );
Guzzle 6
$client = new \GuzzleHttp\Client(['http_errors' => false]);
예외가 비활성화되면 응답에서 HTTP 상태 코드를 검색할 수 있습니다.
$request = $client->get($uri); $response = $request->send(); $statuscode = $response->getStatusCode();
그런 다음 그에 따라 다양한 상태 코드를 처리할 수 있습니다.
if ($statuscode > 300) { // Do some error handling }
또는 특정 예상 코드 처리:
if (200 === $statuscode) { // Do something } elseif (304 === $statuscode) { // Nothing to do } elseif (404 === $statuscode) { // Clean up DB or something like this } else { throw new MyException("Invalid response from api..."); }
예외를 비활성화하고 상태 코드를 수동으로 처리하면 오류 처리를 완전히 제어하고 테스트 실행 중단을 방지할 수 있습니다.
위 내용은 Guzzle을 사용할 때 처리되지 않은 예외를 어떻게 방지할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!