Guzzle/Httpの新機能。
許可されていない場合は401コードで、値がない場合は400で応答するAPI REST URLログインがあります。
私はいくつかの問題があるかどうかを確認するためにhttpステータスコードを取得しますが、コード(整数または文字列)のみを持つことはできません。
これは私のコードです、ここで説明を使用しました( http://docs.guzzlephp.org/en/stable/quickstart.html#exceptions )
namespace controllers;
use GuzzleHttp\Psr7;
use GuzzleHttp\Exception\ClientException;
$client = new \GuzzleHttp\Client();
$url = $this->getBaseDomain().'/api/v1/login';
try {
$res = $client->request('POST', $url, [
'form_params' => [
'username' => 'abc',
'password' => '123'
]
]);
} catch (ClientException $e) {
//echo Psr7\str($e->getRequest());
echo Psr7\str($e->getResponse());
}
getStatusCode
関数を使用できます。
_$response = $client->request('GET', $url);
$statusCode = $response->getStatusCode();
_
注:URLが他のURLにリダイレクトする場合、_allow_redirects
_プロパティのfalse
値を設定して、親URLの初期ステータスコードを検出します。
_// On client creation
$client = new GuzzleHttp\Client([
'allow_redirects' => false
]);
// Using with request function
$client->request('GET', '/url/with/redirect', ['allow_redirects' => false]);
_
catch
ブロックのステータスコードを確認する場合は、$exception->getCode()
を使用する必要があります
このコードを使用することもできます:
$client = new \GuzzleHttp\Client(['base_uri' 'http://...', 'http_errors' => false]);
あなたの助けを願っています