如何在 Symfony 中使用 Guzzle 客户端发送参数?
How to send parameters using Guzzle client in Symfony?
我正在尝试使用 phpunit 和 guzzle 进行一些应用程序测试。问题是当我设置请求并 post 它时,它几乎丢失了所有数据。
我的请求是这样的:
$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
不是 request option。
您正在寻找 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,
],
],
],
]
);
我正在尝试使用 phpunit 和 guzzle 进行一些应用程序测试。问题是当我设置请求并 post 它时,它几乎丢失了所有数据。
我的请求是这样的:
$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
不是 request option。
您正在寻找 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,
],
],
],
]
);