タグ付けされた質問 「guzzle」


6
Guzzle 6:応答用のjson()メソッドはもうありません
以前はGuzzle 5.3で: $response = $client->get('http://httpbin.org/get'); $array = $response->json(); // Yoohoo var_dump($array[0]['origin']); JSON応答から簡単にPHP配列を取得できました。現在、Guzzle 6では、方法がわかりません。何もないように思わjson()もう方法。私は(迅速に)最新バージョンのドキュメントを読みましたが、JSON応答について何も見つかりませんでした。私は何かを逃したと思います、多分私は理解していない(または多分私は正しく読んでいない)新しい概念があるでしょう。 これが(下の)新しい方法だけですか? $response = $client->get('http://httpbin.org/get'); $array = json_decode($response->getBody()->getContents(), true); // :'( var_dump($array[0]['origin']); またはヘルパーまたはそのようなものはありますか?
172 php  guzzle 

2
Guzzlehttp-Guzzle 6からの応答の本文を取得するにはどうすればよいですか?
私の会社が開発しているAPIのラッパーを記述しようとしています。それは落ち着いていて、Postmanを使用http://subdomain.dev.myapi.com/api/v1/auth/して、ユーザー名とパスワードをPOSTデータとして使用するなど、エンドポイントに投稿リクエストを送信でき、トークンが返されます。すべてが期待どおりに動作します。さて、PHPから同じことをしようとすると、GuzzleHttp\Psr7\Responseオブジェクトが返されますが、Postmanリクエストで行ったように、その中にトークンを見つけることができません。 関連するコードは次のようになります。 $client = new Client(['base_uri' => 'http://companysub.dev.myapi.com/']); $response = $client->post('api/v1/auth/', [ 'form_params' => [ 'username' => $user, 'password' => $password ] ]); var_dump($response); //or $resonse->getBody(), etc... 上記のコードの出力は次のようになります(警告、テキストの着信ウォール): object(guzzlehttp\psr7\response)#36 (6) { ["reasonphrase":"guzzlehttp\psr7\response":private]=> string(2) "ok" ["statuscode":"guzzlehttp\psr7\response":private]=> int(200) ["headers":"guzzlehttp\psr7\response":private]=> array(9) { ["connection"]=> array(1) { [0]=> string(10) "keep-alive" } ["server"]=> array(1) { [0]=> …
163 php  response  guzzle  guzzle6 

5
Guzzle例外を処理し、HTTP本文を取得する
サーバーが4xxおよび5xxステータスコードを返すときに、Guzzleからのエラーを処理したいと思います。私はこのようなリクエストをします: $client = $this->getGuzzleClient(); $request = $client->post($url, $headers, $value); try { $response = $request->send(); return $response->getBody(); } catch (\Exception $e) { // How can I get the response body? } $e->getMessageコード情報を返しますが、HTTP応答の本文は返しません。応答本文を取得するにはどうすればよいですか?
122 php  guzzle 

4
PHP GuzzleHttp。パラメータを使用して投稿リクエストを行う方法は?
GuzzleHttp(バージョン5.0)で投稿リクエストを行う方法。 私は次のことをしようとしています: $client = new \GuzzleHttp\Client(); $client->post( 'http://www.example.com/user/create', array( 'email' => 'test@gmail.com', 'name' => 'Test user', 'password' => 'testpassword' ) ); しかし、私はエラーを得ています: PHPの致命的なエラー:キャッチされていない例外 'InvalidArgumentException'とメッセージ 'No method can handle handle the email config key'が表示される

5
バックグラウンドプロセスでConnectionExceptionではなくRejectionExceptionをスローするGuzzle
複数のキューワーカーで実行されるジョブがあり、Guzzleを使用したHTTPリクエストがいくつか含まれています。ただし、GuzzleHttp\Exception\RequestExceptionこれらのジョブをバックグラウンドプロセスで実行しているときに、このジョブ内のtry-catchブロックが取得されないようです。実行中のプロセスは、php artisan queue:workキューを監視してジョブを取得するLaravelキューシステムワーカーです。 代わりに、スローされる例外GuzzleHttp\Promise\RejectionExceptionはメッセージの1つです。 プロミスは次の理由で拒否されました:cURLエラー28:受信した0バイトで30001ミリ秒後に操作がタイムアウトしました(https://curl.haxx.se/libcurl/c/libcurl-errors.htmlを参照 ) これは実際には偽装されていますGuzzleHttp\Exception\ConnectException(https://github.com/guzzle/promises/blob/master/src/RejectionException.php#L22を参照)。これは、通常のPHPプロセスで同様のジョブを実行すると、 URL、私はConnectExceptionメッセージで意図したとおりに取得します: cURLエラー28:100ミリ秒後に操作がタイムアウトし、0バイトのうち0バイトが受信されました(https://curl.haxx.se/libcurl/c/libcurl-errors.htmlを参照 ) このタイムアウトをトリガーするサンプルコード: try { $c = new \GuzzleHttp\Client([ 'timeout' => 0.1 ]); $response = (string) $c->get('https://example.com')->getBody(); } catch(GuzzleHttp\Exception\RequestException $e) { // This occasionally gets catched when a ConnectException (child) is thrown, // but it doesnt happen with RejectionException because it is …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.