发送形式params作为Guzzle POST请求的主体

时间:2017-12-08 04:41:15

标签: post guzzle eventbrite

我对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到处都提到了,这不是常识?这里出了点问题,是吗

  1. 我在guzzle POST请求中理解form_params和body参数(最有可能)
  2. Guzzle无法正确处理POST请求(不太可能)
  3. Eventbrite API未正确接收POST请求。
  4. 我发现guzzle非常不透明,x在兔子洞里扯下来通常会提出更多问题而不是答案。

    我实际上刚刚在Eventbrite端发现了更奇怪的东西 - 创建新事件的POST请求使用form_params,更新事件需要将params作为json。什么。

0 个答案:

没有答案