Получение объекта JSON путем вызова URL-адреса с параметрами в PHP

Я пытаюсь получить данные json, вызвав url moodle:

https://<moodledomain>/login/token.php?username=test1&password=Test1&service=moodle_mobile_app 

формат ответа системы moodle выглядит следующим образом:

 {"token":"a2063623aa3244a19101e28644ad3004"} 

Результат, который я пытался обработать с помощью PHP:

 if ( isset($_POST['username']) && isset($_POST['password']) ){ // test1 Test1 // request for a 'token' via moodle url $json_url = "https://<moodledomain>/login/token.php?username=".$_POST['username']."&password=".$_POST['password']."&service=moodle_mobile_app"; $obj = json_decode($json_url); print $obj->{'token'}; // should print the value of 'token' } else { echo "Username or Password was wrong, please try again!"; } 

Результат: undefined

Теперь вопрос: как я могу обработать формат ответа json системы moodle? Любая идея была бы замечательной.

[UPDATE]: Я использовал другой подход через curl и изменил в php.ini следующие строки: * extension = php_openssl.dll *, * allow_url_include = On *, но теперь есть ошибка: Внимание: попытка получить свойство не- объект. Вот обновленный код:

 function curl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); curl_close($ch); return $data; } $moodle = "https://<moodledomain>/moodle/login/token.php?username=".$_POST['username']."&password=".$_POST['password']."&service=moodle_mobile_app"; $result = curl($moodle); echo $result->{"token"}; // print the value of 'token' 

Может ли кто-нибудь мне посоветовать?

json_decode () ожидает строку, а не URL. Вы пытаетесь декодировать этот url (и json_decode () НЕ будет делать HTTP-запрос для получения содержимого URL-адреса для вас).

Вы должны сами получить данные json:

 $json = file_get_contents('http://...'); // this WILL do an http request for you $data = json_decode($json); echo $data->{'token'};