2016-09-28 2 views
1

がつがつ食う/ Psr7要求にクエリパラメータを取得する方法:私はクライアントを模擬し、そのようにそれを使用しようとしています</p> <p>がつがつ食う6を使用しています

<?php 

use GuzzleHttp\Client; 
use GuzzleHttp\Handler\MockHandler; 
use GuzzleHttp\HandlerStack; 
use GuzzleHttp\Middleware; 
use GuzzleHttp\Psr7\Request; 
use GuzzleHttp\Psr7\Response; 

$mock_handler = new MockHandler([ 
    new Response(200, ['Content-Type' => 'application/json'], 'foo'), 
]); 

$history = []; 
$history_middleware = Middleware::history($history); 

$handler_stack = HandlerStack::create($mock_handler); 
$handler_stack->push($history_middleware); 

$mock_client = new Client(['handler' => $handler_stack]); 

// Use mock client in some way 
$mock_client->get("http://example.com", [ 
    'query' => [ 
     'bar' => '10', 
     'hello' => '20' 
    ], 
]); 
// ------ 

// get original request using history 
$transaction = $history[0]; 
/** @var Request $request */ 
$request = $transaction['request']; 

// How can I get the query parameters that was used in the request (i.e. bar) 

私の質問はどうすればよいですGuzzleHttp\Psr7\Requestクラスで使用されているクエリパラメータを取得しますか?

最も近いのは次の通りです:$request->getUri()->getQuery()ですが、このような文字列が返されます:bar=10&hello=20

答えて

2

私は私の問題を解決したようです。

parse_str($request->getUri()->getQuery(), $query); 

を、私は今、クエリパラメータの配列を持っている:

私は単にこれを行うことができます。

その他のソリューションは大歓迎です!

関連する問題