如何在 Guzzle/ Psr7 请求中获取查询参数
How to get the query parameters in a Guzzle/ Psr7 request
我正在使用 Guzzle 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
class 中使用的查询参数?
我设法得到的最接近的是:$request->getUri()->getQuery()
,但这只是 returns 一个像这样的字符串:bar=10&hello=20
.
我的问题好像解决了
我可以简单地这样做:
parse_str($request->getUri()->getQuery(), $query);
我现在有了一个查询参数数组。
欢迎其他解决方案!
我正在使用 Guzzle 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
class 中使用的查询参数?
我设法得到的最接近的是:$request->getUri()->getQuery()
,但这只是 returns 一个像这样的字符串:bar=10&hello=20
.
我的问题好像解决了
我可以简单地这样做:
parse_str($request->getUri()->getQuery(), $query);
我现在有了一个查询参数数组。
欢迎其他解决方案!