7
我試圖讓JSON數據調用的Moodle網址:獲取JSON對象通過調用帶有參數的URL在PHP
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!";
}
結果,我S:未定義
現在的問題是: 我怎麼可以處理JSON響應的Moodle系統格式?任何想法都會很棒。
[UPDATE]: 我已經通過捲曲使用另一種方法和在php.ini中以下行改變:*延長= php_openssl.dll *,* allow_url_include =開*,但現在有一個錯誤代碼:注意:試圖獲取非對象的屬性。以下是更新後的代碼:
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'
誰能告訴我?
感謝您的回覆,我已經把它改爲**的file_get_contents( 'https://開頭...')** ... ,但仍然是相同的結果** undefined ** 我的PHP版本5.4.7 – Dozent
然後回顯file_get_contents結果以查看您得到的結果。它真的是JSON嗎?也許你已經啓用了magic_quotes,並且PHP「有利地」成爲一個混蛋,並且將你的字符串弄亂了。也許這個網址根本不輸出json。 –
我跟隨到這個鏈接:http://docs.moodle.org/dev/Creating_a_web_service_client#How_to_get_a_user_token 它不是一個json resnponse? – Dozent