Опубликовать данные JSON с помощью PHP CURL - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь опубликовать некоторые данные с помощью JSON в API. Этот API будет генерировать токен, который мне понадобится позже, чтобы выполнить другие запросы к этому API.

Это мой код.

$data = array("grant_type" => "password", "client_id" => "454665", "client_secret" => "6544465645", "username" => "654164@54484.com", "password" => "5454644", "refresh_token" => "648654");
$data_string = json_encode($data);  
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false) //<- i was missing this line
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
     //'Content-Length: ' . strlen($data_string))
)); 

$result = curl_exec($ch);

echo json_decode($result);

Проблема в том, что echo json_decode ($ result); возвращает пустую страницу, без ответа.

Я тестировал API в почтальоне, и он возвращает мне токен. Я думаю, что мне просто не хватает чего-то, чтобы правильно отобразить данные.

1 Ответ

0 голосов
/ 15 марта 2019

Перемещение моего комментария к ответу и его расширение:
Выполнение следующего должно дать вам немного больше данных.
var_dump(curl_getinfo($ch));

Как указывалось в оригинальном постере, проблема заключалась в том, что сертификат был помечен как недействительный. Чаще всего это происходит из-за того, что сертификат является самозаверяющим сертификатом, но любой недействительный сертификат выдаст эту ошибку.

Для разработки это приемлемо. Однако в процессе производства вы ВСЕГДА хотите убедиться, что запрашиваемый URL имеет действительный сертификат. Обычно это из соображений безопасности.

Добавление curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...