Laravel中的Guzzle客户端:InvalidArgumentException:"没有配置任何方法来处理form_params配置密钥"

时间:2015-06-05 19:12:04

标签: php api laravel-4 guzzle

我正在尝试使用Guzzle客户端向API发布请求,我收到一条错误消息,

  

InvalidArgumentException:"没有配置任何方法来处理form_params配置密钥"

这就是我的尝试:

$response = $this->guzzle->post("https://example.com",[
                'form_params'=> [
                    'client_id'=>$this->client_id,
                    'authorization_code'=>$this->authorization_code,
                    'decoder_query'=> $this->requestQuery
                  ],
            ]
        );

$this->requestQuery是一个JSON请求。

3 个答案:

答案 0 :(得分:3)

$response = $this->guzzle->post("https://example.com", [
    'body' => [
        'client_id'         => $this->client_id,
        'authorization_code'=> $this->authorization_code,
        'decoder_query'     => json_encode($this->requestQuery),
    ]
]);

使用这种语法我正在解决它。

答案 1 :(得分:2)

你可能正在使用6.0之前的Guzzle版本。更新到最新版本和'form_params'将正常工作。自从我在5.x版本

以来,我遇到了同样的问题
composer require 'guzzlehttp/guzzle:6.0.1'

并确保更新您的依赖项:

composer update

然后你会看到它还会拉入“guzzlehttp / psr7(1.0.0)”。希望有所帮助。

答案 2 :(得分:1)

对我来说,这最终是一个问题,实际的Guzzle包不正确。它从缓存中加载了一个不是PSR7版本的版本。

清除作曲家缓存后

php composer.phar clear-cache

我只是做了一个新的作曲家安装并安装得很好,同时修复了错误。