2016-11-24 3 views
0

404リクエスト例外を処理しようとしています。私がGuzzを使用するのは初めてですので、エラープロンプトなしで例外を処理することはできません。エラーコードを確認する必要があります。これはmailchimp API上で必要な情報を提供するエラーコードです。Laravel - RequestException(Guzzle + MailChimp)を処理できません

代わりに、私は応答でこれを取得しています - http://prntscr.com/db9ari

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Newsletter; 
use GuzzleHttp\Client; 

class NewsletterController extends Controller 
{ 


    public function api() 
    { 

     $mailchimp = new Client(['base_uri' => 'https://us14.api.mailchimp.com/3.0/']); 

     try { 
      $checkEmail = $mailchimp->request('GET', 'lists/LIST-ID/members/' . md5('EMAIL), [ 'headers' => [ 'Authorization' => 'apikey ' . config('globals.mailchimp_key') ]]); 
     } 

     catch(RequestException $exception) { 

      if ($exception->getStatusCode() === 404) 
      { 
       return 'STRING THAT I WANT TO RETURN IN CASE OF ERROR'; 
      } 
     } 



    } 
} 

答えて

0

は、このようなusign何か試してみてください:Guzzle documentationによると

try { 
    $checkEmail = $mailchimp->request('GET', 'lists/LIST-ID/members/' . md5('EMAIL), [ 'headers' => [ 'Authorization' => 'apikey ' . config('globals.mailchimp_key') ]]); 
}catch(\Exception $e) { 
    if ($e instanceof GuzzleHttp\Exception\RequestException){ 
     if ($exception->getStatusCode() === 404) 
     { 
      return 'STRING THAT I WANT TO RETURN IN CASE OF ERROR'; 
     } 
    }else{ 
     // do anything else here 
    } 
} 
+0

作品のその種類に対処することができます任意の500レベルのエラーのためServerExceptionがスローされます!私はこれを入手しました(http://prntscr.com/db9m77)、どうすれば "#code"を使うことができますか? –

+0

try $ e-> getResponse() - > getStatusCode(); –

0

を:

GuzzleHttp\Exception\ClientExceptionがためにスローされますhttp_errors要求オプションがtrueに設定されている場合、400レベルエラー

次のいずれかの方法でこの問題を解決することができます。

  • あなたのクライアントをインスタンス化する際にfalsehttp_errors値を設定します。あなたのコードのためにこのように見える:$mailchimp = new Client(['base_uri' => 'https://us14.api.mailchimp.com/3.0/', 'http_errors' => false]);

  • あなたの呼び出しをtry/catchで囲み、ClientExceptionにキャッチします。

がつがつ食うはまた、あなたが同じよう

関連する問題