2015-09-13 11 views
9

送信前または送信後に完全な要求を文字列として出力する方法はありますか?Guzzle 6、リクエスト文字列を取得

$res = (new GuzzleHttp\Client())->request('POST', 'https://endpoint.nz/test', [ 'form_params' => [ 'param1'=>1,'param2'=>2,'param3'=3 ] ]); 

どのようにしてそのリクエストを文字列として表示できますか? (応答ではありません)

私の要求は失敗し、403が返ってきて、正確に何が送信されているか知りたいのです。 PostManを使用しているときに同じリクエストが機能するためです。

+0

https://github.com/guzzle/guzzle/blob/master/src%2FMessageFormatter.php – zerkms

答えて

12

デバッグオプションがあるがつがつ食うのドキュメントを1として、ここでのリンクはがつがつ食うのドキュメントからです http://guzzle.readthedocs.org/en/latest/request-options.html#debug

$client->request('GET', '/get', ['debug' => true]); 
+0

この問題は、何も表示されないため、アプリケーションが出力レンダリングに対して何かを実行しても、あなたが立ち往生していないことです。そして、あなたはstdoutの不必要な畳み込みの再ルーティングなしでそれを捕まえることはできません。ああ、phpstreamをログファイルに提供すると、カール要求エラーが発生します。 guzzleは可能な限り不透明になるように設計されていますか? –

+0

[ob_start](http://php.net/manual/en/function.ob-start.php)と[ob_get_clean](http://php.net/manual/en/function.ob-start.php )を 'request'の周りに置くと、標準出力ではなく変数にデバッグの結果を得ることができます。 –

+0

もう一度、不必要に畳み込まれ、答えを探すために数時間を費やさずに使いにくい。何かをデバッグすることは、このような難しいことではありません。私はあなたがxdebugを使ってこの情報を得ることができると思ったでしょうが、不可能と思われます。 –

関連する問題