狂饮6 PUT请求未发送表单参数

时间:2018-07-23 16:48:13

标签: php guzzle guzzle6

当我想使用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时发送的?

1 个答案:

答案 0 :(得分:0)

这种行为在枪口文件form-params

中有所描述
  

form_params-用于发送应用程序/ x-www-form-urlencoded POST请求。

可能您已经以json格式传递了参数:

$request = $client->request('PUT', $url, [
  'json' => $params,
  'headers' => [
    'Referer' => '(intentionally removed)',
    'Accept' => 'application/json',
  ]
]);