我正在尝试使用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_params
与json
不兼容。你要么送一个,要么送另一个。由于您已经在发送json
,因此必须将其从请求中删除。
$client->request(
'POST',
'catalogue/item/save',
[
'headers' => [
'X-AUTH-API-TOKEN' => 'Bearer ' . $tokens->token,
'itemData' => ["asd"],
],
'form_params' => [
'itemData' => [
'basic' => [
'code' => 1,
],
],
],
]
);