Guzzle 6 PUT 请求不发送表单参数
Guzzle 6 PUT request not sending form params
每当我想使用 Guzzle 发出 POST 请求时,我都会使用以下代码:
$request = $client->request('POST', $url, [
'form_params' => $params,
'headers' => [
'Referer' => '(intentionally removed)',
'Accept' => 'application/json',
]
]);
代码运行没有任何问题,并且总是发送 $params 中的信息,但是当我将请求类型从 POST 更改为 PUT 时,请求变为:
$request = $client->request('PUT', $url, [
'form_params' => $params,
'headers' => [
'Referer' => '(intentionally removed)',
'Accept' => 'application/json',
]
]);
请求突然停止发送包含在 $params 中的数据。
我已经用 POST 和 PUT 请求测试了请求发送到 Insomnia 的端点,并且这两种类型都按预期处理,所以我确定问题不存在。
什么会导致使用 POST 方法发送来自 Guzzle 的数据,但在使用 PUT 时却不能?
guzzle 文档中描述了此行为 form-params
form_params - Used to send an application/x-www-form-urlencoded POST request.
可能,你足够传递 json 格式的参数:
$request = $client->request('PUT', $url, [
'json' => $params,
'headers' => [
'Referer' => '(intentionally removed)',
'Accept' => 'application/json',
]
]);
每当我想使用 Guzzle 发出 POST 请求时,我都会使用以下代码:
$request = $client->request('POST', $url, [
'form_params' => $params,
'headers' => [
'Referer' => '(intentionally removed)',
'Accept' => 'application/json',
]
]);
代码运行没有任何问题,并且总是发送 $params 中的信息,但是当我将请求类型从 POST 更改为 PUT 时,请求变为:
$request = $client->request('PUT', $url, [
'form_params' => $params,
'headers' => [
'Referer' => '(intentionally removed)',
'Accept' => 'application/json',
]
]);
请求突然停止发送包含在 $params 中的数据。
我已经用 POST 和 PUT 请求测试了请求发送到 Insomnia 的端点,并且这两种类型都按预期处理,所以我确定问题不存在。
什么会导致使用 POST 方法发送来自 Guzzle 的数据,但在使用 PUT 时却不能?
guzzle 文档中描述了此行为 form-params
form_params - Used to send an application/x-www-form-urlencoded POST request.
可能,你足够传递 json 格式的参数:
$request = $client->request('PUT', $url, [
'json' => $params,
'headers' => [
'Referer' => '(intentionally removed)',
'Accept' => 'application/json',
]
]);