Php 使用Guzzle 6时Quickblox API错误

Php 使用Guzzle 6时Quickblox API错误,php,guzzle,guzzle6,Php,Guzzle,Guzzle6,我正在使用“guzzle http/guzzle”:“^6.1”和Laravel 4.2 我正在尝试对quickblox进行post调用,但返回422错误。这是我在控制器中的代码: $client = new GuzzleHttp\Client(); $sessionGuzzle = $client->request('POST', 'https://api.quickblox.com/session.json',['headers' => ['Content-Typ

我正在使用“guzzle http/guzzle”:“^6.1”和Laravel 4.2 我正在尝试对quickblox进行post调用,但返回422错误。这是我在控制器中的代码:

    $client = new GuzzleHttp\Client();
    $sessionGuzzle = $client->request('POST', 'https://api.quickblox.com/session.json',['headers' => ['Content-Type' => 'application/json' , 'QuickBlox-REST-API-Version'=>'0.1.0'],'json' => $jsonBody]);
    $response = $client->send($sessionGuzzle);
    dd($response->json());
GuzzleHttp\Exception\ClientException(422)

客户端错误:422


422是HTTP状态代码-不可处理实体

看起来quickblox API拒绝了您的调用,因为您发送了错误的头或正文


尝试将
'json'=>$jsonBody
更改为
'body'=>$jsonBody
,并确保
$jsonBody
是json编码的字符串。

根据422上的Quickblox文档,当

已使用登录名的用户


根据Quickblox文档,提供的时间戳必须是NTP的+/-10分钟。

在$jsonBody中没有任何附加变化的“json”,这就是我在$jsonBody中的内容:{“应用程序id:”22337”,“身份验证密钥:”UcUiGsRmOZ-Fq-J”,“时间戳:”1446051576”,“nonce:”380128471”,“签名:”7707EEB02B000BGSD5G7F57SGC225DE2358611“}目前我正在使用另一个库anlutro\cURL,guzzle无法提出任何请求。。有什么建议吗?这个问题与Guzzle有关目前我正在为laravel使用另一个curl库,它正在工作,因此我认为与请求使用的数据无关。如果启用调试选项,您发送的请求是,您认为您正在发送的,还是使用v2时正在发送的?