我正在尝试使用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请求。
答案 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
我只是做了一个新的作曲家安装并安装得很好,同时修复了错误。