Guzzle 查询字符串参数
Guzzle query string prameters
我在编写请求时遇到问题。我需要使用 request()
向 GET
方法提供查询字符串参数。由于我正在编写测试,因此无法编辑该方法。
现在我是这样写的:
$result = $client->request(
'GET',
'cart/current/get-items',
[
'headers' => [
'X-AUTH-API-TOKEN' => 'Bearer ' . $tokens->token
],
'query'=>[
'paginator_data'=>[
'page'=>1,
'page_size' => 10
]
]
]
获取paginator_data
的方法:
$paginatorData = json_decode($request->query->get('paginator_data'), true);
这就是 query
的样子,如果我检查 request
从前端测试它:
来源:
paginator_data=%7B%22page%22:1,%22page_size%22:10%7D
已解析:
paginator_data: {"page":1,"page_size":10}
如何格式化 query
使其看起来像 Source
?因为如果我将其复制粘贴到我的查询中,它就会起作用。
您可以使用 urlencode(string $string): string
。参见 urlencode()
echo urlencode('paginator_data: {"page":1,"page_size":10}');
// will give output paginator_data%3A+%7B%22page%22%3A1%2C%22page_size%22%3A10%7D
我认为您可能需要 json_encode
您的数据:
$result = $client->request(
'GET',
'cart/current/get-items',
[
'headers' => [
'X-AUTH-API-TOKEN' => 'Bearer ' . $tokens->token
],
'query'=>[
'paginator_data'=> json_encode([
'page'=>1,
'page_size' => 10
])
]
]
);
我在编写请求时遇到问题。我需要使用 request()
向 GET
方法提供查询字符串参数。由于我正在编写测试,因此无法编辑该方法。
现在我是这样写的:
$result = $client->request(
'GET',
'cart/current/get-items',
[
'headers' => [
'X-AUTH-API-TOKEN' => 'Bearer ' . $tokens->token
],
'query'=>[
'paginator_data'=>[
'page'=>1,
'page_size' => 10
]
]
]
获取paginator_data
的方法:
$paginatorData = json_decode($request->query->get('paginator_data'), true);
这就是 query
的样子,如果我检查 request
从前端测试它:
来源:
paginator_data=%7B%22page%22:1,%22page_size%22:10%7D
已解析:
paginator_data: {"page":1,"page_size":10}
如何格式化 query
使其看起来像 Source
?因为如果我将其复制粘贴到我的查询中,它就会起作用。
您可以使用 urlencode(string $string): string
。参见 urlencode()
echo urlencode('paginator_data: {"page":1,"page_size":10}');
// will give output paginator_data%3A+%7B%22page%22%3A1%2C%22page_size%22%3A10%7D
我认为您可能需要 json_encode
您的数据:
$result = $client->request(
'GET',
'cart/current/get-items',
[
'headers' => [
'X-AUTH-API-TOKEN' => 'Bearer ' . $tokens->token
],
'query'=>[
'paginator_data'=> json_encode([
'page'=>1,
'page_size' => 10
])
]
]
);