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
            ])
        ]
    ]
);