如何在Symfony中使用Guzzle客户端发送参数



我正在尝试使用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为空的问题是什么吗?

您没有发送任何参数。

request不是请求选项。

您很可能正在查找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,
],
],
],
]
);

最新更新