2015-10-28 3 views
0

Я использую «guzzlehttp/guzzle»: «^ 6.1» и Laravel 4.2 Я пытаюсь сделать пост-вызов quickblox, но верну мне 422 ошибку. Это мой код в контроллере:Ошибки API Quickblox при использовании Guzzle 6

$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)

Client error: 422

ответ

0

422 является код состояния HTTP - Unprocessable Entity.

Похоже, что API-интерфейс quickblox отклоняет ваш вызов, потому что вы либо отправляете неправильные заголовки, либо тело.

Попробуйте изменить 'json' => $jsonBody на номер 'body' => $jsonBody и убедитесь, что $jsonBody - это кодированная строка JSON.

+0

ничего не Append изменения 'JSON' в 'теле', это то, что я есть внутри $ jsonBody: { "APPLICATION_ID": "22337", "AUTH_KEY": "UcUiGsRmOZ-Fq-J", "метки времени": "1446051576 «,« nonce »:« 380128471 »,« подпись »:« 7707eeb02b00bgsd5g7f57sgc225de2358611 »} – mds

+0

, если я отправлю данные $ jsonBody из почтальона, он работает. – mds

+0

В настоящее время я использую другую библиотеку, anlutro \ cURL, с жужжанием я не могу делать никаких запросов .. любое предложение? – mds

0

Согласно документации Quickblox на errors вашей ошибки 422 происходит при

User with login that has already been taken

Согласно документации Quickblox на authentication Отметка времени, который предусмотрен должен быть +/- 10 минут NTP.

+0

Проблема связана с Guzzle, в настоящее время я использую другую библиотеку curl для laravel и она работает, поэтому я думаю, что это не проблема, связанная с данными, используемыми для запроса. – mds

+0

Если вы включите опцию debug, это запрос, который вы отправляете, что, по вашему мнению, отправляете, или то, что отправляется при использовании v2? –

Смежные вопросы