国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

捕獲Guzzle的異常
P粉511749537
P粉511749537 2023-11-16 14:36:03
0
12
1418

我正在嘗試捕獲在我正在開發(fā)的 API 上運(yùn)行的一組測試中的異常,並且我正在使用 Guzzle 來使用 API 方法。我已經(jīng)將測試包裝在 try/catch 區(qū)塊中,但它仍然拋出未處理的異常錯(cuò)誤。按照他們的文檔中的描述添加事件監(jiān) 聽器似乎沒有做任何事情。我需要能夠檢索 HTTP 代碼為 500、401、400 的回應(yīng),實(shí)際上任何不是 200 的回應(yīng),因?yàn)槿绻黄鹱饔茫到y(tǒng)將根據(jù)呼叫結(jié)果設(shè)定最合適的代碼.

目前程式碼範(fàn)例

foreach($tests as $test){

        $client = new Client($api_url);
        $client->getEventDispatcher()->addLi stener('request.error', function(Event $event) {        

            if ($event['response']->getStatusCode() == 401) {
                $newResponse = new Response($event['response']->getStatusCode());
                $event['response'] = $newResponse;
                $event->stopPropagation();
            }            
        });

        try {

            $client->setDefaultOption('query', $query_string);
            $request = $client->get($api_version . $test['method'], array(), isset($test['query'])?$test['query']:array());


          // Do something with Guzzle.
            $response = $request->send();   
            displayTest($request, $response);
        }
        catch (GuzzleHttpExceptionClientErrorResponseException $e) {

            $req = $e->getRequest();
            $resp =$e->getResponse();
            displayTest($req,$resp);
        }
        catch (GuzzleHttpExceptionServerErrorResponseException $e) {

            $req = $e->getRequest();
            $resp =$e->getResponse();
            displayTest($req,$resp);
        }
        catch (GuzzleHttpExceptionBadResponseException $e) {

            $req = $e->getRequest();
            $resp =$e->getResponse();
            displayTest($req,$resp);
        }
        catch( Exception $e){
            echo "AGH!";
        }

        unset($client);
        $client=null;

    }

即使使用拋出異常類型的特定 catch 區(qū)塊,我仍然會(huì)回傳

Fatal error: Uncaught exception 'GuzzleHttpExceptionClientErrorResponseException' with message 'Client error response [status code] 401 [reason phrase] Unauthorized [url]

如您所料,頁面上的所有執(zhí)行都會(huì)停止。添加 BadResponseException 捕獲允許我正確捕獲 404,但這似乎不適用於 500 或 401 響應(yīng)。誰能建議我哪裡出錯(cuò)了。

P粉511749537
P粉511749537

全部回覆(12)
尊渡假賭尊渡假賭尊渡假賭

三大改造***工資電鍋三大改造***工資電飯鍋三大改造***工資電飯鍋三大改造***工資電飯鍋三大改造***工資電鍋三大改造***薪資電鍋

尊渡假賭尊渡假賭尊渡假賭

阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥

尊渡假賭尊渡假賭尊渡假賭

阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥阿帆VS啊打工仔手動(dòng)蝶閥

尊渡假賭尊渡假賭尊渡假賭

艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅

尊渡假賭尊渡假賭尊渡假賭

艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅

尊渡假賭尊渡假賭尊渡假賭

艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅

尊渡假賭尊渡假賭尊渡假賭

艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅艾師傅

尊渡假賭尊渡假賭尊渡假賭

阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是

P粉701491897

根據(jù)您的項(xiàng)目,可能需要停用 guzzle 異常。有時(shí)編碼規(guī)則不允許流量控制出現(xiàn)異常。您可以為 Guzzle 3 停用例外,如下:

$client = new \Guzzle\Http\Client($httpBase, array(
  'request.options' => array(
     'exceptions' => false,
   )
));

這不會(huì)停用諸如超時(shí)之類的curl異常,但現(xiàn)在您可以輕鬆取得每個(gè)狀態(tài)碼:

$request = $client->get($uri);
$response = $request->send();
$statuscode = $response->getStatusCode();

要檢查您是否獲得了有效的程式碼,您可以使用以下內(nèi)容:

if ($statuscode > 300) {
  // Do some error handling
}

...或更好地處理所有預(yù)期的程式碼:

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 5.3

$client = new \GuzzleHttp\Client(['defaults' => [ 'exceptions' => false ]] );

感謝@mika

Guzzle 6

$client = new \GuzzleHttp\Client(['http_errors' => false]);
尊渡假賭尊渡假賭尊渡假賭

阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是阿是

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板