Guzzle参数多个数组

时间:2015-04-13 10:47:14

标签: php curl guzzle

我有卷曲请求:

curl http://example.com/json/get_products_by_multifilter -d '{"multifilter":{"limit":5}}'

我的Guzzle代码:

    $client = new GuzzleHttp\Client();

    $request = $client->createRequest(
        'POST',
        'http://example.com/json/get_products_by_multifilter',
        array('multifilter' => array('limit' => 1))
    );
    $response = $client->send($request);

    echo $response->getBody();

我收到错误:

[InvalidArgumentException]
  没有方法可以处理multifilter配置密钥

我的代码有什么问题,如何将多个数组作为参数?

1 个答案:

答案 0 :(得分:2)

在Guzzle 5中,您需要在密钥正文

中提供发布数据

查看文档以获取更多信息:http://guzzle.readthedocs.org/en/latest/clients.html

使用发布方法的示例:

$client->post('http://example.com/json/get_products_by_multifilter', [
    'body' => [
        'multifilter' => ['limit' => 1]
    ]
]);

使用 createRequest

$request = $client->createRequest(
    'POST',
    'http://example.com/json/get_products_by_multifilter',
    ['body' => 'multifilter' => ['limit' => 1]]
);

每次看到错误

  

[InvalidArgumentException]没有方法可以处理multifilter配置   键

表示您在选项中使用的密钥不存在,而guzzle不知道如何处理它。