我对Guzzle弃用发送身体参数感到有点困惑,如果$ body是一个数组,则抛出异常。推荐的方法似乎是用form_params替换body参数。 我在这里发布到eventbrite API https://www.eventbrite.com.au/developer/v3/quickstart/
并在执行以下操作时:
$response = $this->guzzleClient->request('POST', $item->eventbriteEndpoint, ['form_params' => $item->parameters]);
它不起作用(并且实际上响应它已收到GET请求)
经过多次试验和错误,我发现我需要将参数json_encode编成json字符串并将其添加到正文中,如此
$response = $this->guzzleClient->request('POST', $item->eventbriteEndpoint, ['body' => json_encode($item->parameters));
那么这里发生了什么,是form_params正确替换身体,为什么? json_encoding是正确的方法吗?如果是这样的话,为什么form_params到处都提到了,这不是常识?这里出了点问题,是吗
我发现guzzle非常不透明,x在兔子洞里扯下来通常会提出更多问题而不是答案。
我实际上刚刚在Eventbrite端发现了更奇怪的东西 - 创建新事件的POST请求使用form_params,更新事件需要将params作为json。什么。