在Guzzle6上为响应创建事件监听器

时间:2016-10-25 13:51:13

标签: php api laravel guzzle

我正在向Guzzle 6请求api。我想获取catch HTTP 1.0 401 Unauthorized异常并在获取新令牌后重试请求。但是我在新版本的文档中找不到示例。

事件接口在旧文档中有,但没有事件接口新版本。

我正在使用代码来提出请求;

public function doSearch(Request $request)
{
    $apiData = API::where('id', '1')->first(['api_url', 'api_key']);
    try {
        $client = new Client([
            // Base URI is used with relative requests
            'base_uri'  =>  $apiData['api_url'],
            'timeout'   =>  60,
            'headers' => [
                'Authorization' =>  'bearer token',
                'Content-Type'  =>  'application/x-www-form-urlencoded',
            ],
            'verify'    => false,
        ]);

        $request = $client->request('POST', '/api/booking/ticket/search', [
            'RouteType' => $request->input('type')
        ]);
    } catch (ClientException $e) {
        die((string)$e->getResponse()->getBody());
    }
    $code = $request->getStatusCode(); // 200
    $test = $request->getBody()->getContents();
    //$test = json_decode($test,true);
    return view('front.searchresult');
}

我不希望捕获try-catch代码块。我应该更新我创建一个事件监听器的愿望。

如何在Guzzle 6上捕获HTTP异常并续订请求?

0 个答案:

没有答案