加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

通过使用PHP中的参数调用URL来获取JSON对象

发布时间:2020-12-13 18:28:29 所属栏目:PHP教程 来源:网络整理
导读:我想通过调用moodle url来获取json数据: https://moodledomain/login/token.php?username=test1password=Test1service=moodle_mobile_app moodle系统的响应格式如下: {"token":"a2063623aa3244a19101e28644ad3004"} 我试图用PHP处理的结果: if ( isset($_
我想通过调用moodle url来获取json数据:
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!";
}

结果是:未定义

现在的问题是:
如何处理moodle系统的json响应格式?任何想法都会很棒.

[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'};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读