【问题标题】:How to send parameters using Guzzle client in Symfony?如何在 Symfony 中使用 Guzzle 客户端发送参数?
【发布时间】:2021-07-08 21:19:05
【问题描述】:

我正在尝试使用 phpunit 和 guzzle 进行一些应用程序测试。问题是当我设置我的请求并发布它时,它几乎丢失了所有数据。

这就是我的请求的样子:

$client->request(
                'POST',
                'catalogue/item/save',
                [
                    'json' => ['itemData' => [
                        'basic'=>[
                            'code'=>1
                        ]
                    ]],
                    'headers' => [
                        'X-AUTH-API-TOKEN'=>'Bearer '.$tokens->token,
                        'itemData'=>["asd"]
                        ],
                    'itemData' => ["asd"],
                    'request' => [
                        'itemData' => [
                            'basic'=>[
                                'code'=>1
                            ]
                        ]
            ]
                ]
            );

我知道它看起来很混乱,但我尝试了各种方法来传递 itemData 数组。

这就是我尝试从请求中获取itemData 的方式

$itemData = $request->request->get('itemData');

但它总是null,因为$request->request 是空的。

如果我尝试 $request->getContents() 它有 'json' 数组,但我无法更改方法,因为我只是在测试它。

有没有人知道导致$request->request 为空的问题可能是什么?

【问题讨论】:

    标签: php symfony guzzle


    【解决方案1】:

    您没有发送任何参数。

    request 不是request option

    您很可能正在寻找form_params

    另外,请考虑form_paramsjson 不兼容。您要么发送一个,要么发送另一个。由于您已经发送了json,因此您必须从请求中删除它。

    $client->request(
        'POST',
        'catalogue/item/save',
        [
    
            'headers'     => [
                'X-AUTH-API-TOKEN' => 'Bearer ' . $tokens->token,
                'itemData'         => ["asd"],
            ],
            'form_params' => [
                'itemData' => [
                    'basic' => [
                        'code' => 1,
                    ],
                ],
            ],
        ]
    );
    

    【讨论】:

    • 我向上帝发誓我尝试了 form_params,但它没有用,现在我再次尝试它并且它有效.. 谢谢;D
    • 这可能不起作用,因为您同时发送了json。如答案中所述,这是不兼容的(因为jsonform_params 都使用请求正文来发送数据)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2020-06-04
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多