2016-12-05 121 views
0

codeigniter从JSON控制器url返回null!codeigniter从JSON控制器url返回null

这是我的JSON文件控制器:

function data() 
{ 


    $var1 = array(
    'key_name1' => 'value_name1', 
    'key_name2' => 'value_name2' 
    ); 


    header('Content-Type: application/json'); 
    $encode_data = json_encode($var1); 
    echo $encode_data; 


} 

,这是结果控制器:

​​
+1

我试图浏览您的网址,http://tickets.eritreaevents.com/agent/data和而不是获取JSON数据,我被重定向到登录页面。也许这就是你的file_get_contents调用发生的情况。尝试print_r file_get_contents的结果(在修剪和json_decode之前)。 – BareNakedCoder

回答

0

更新您的test方法这样

function test() 
{ 
    // $url = 'http://tickets.eritreaevents.com/agent/data'; 
    $url = 'https://api.coursera.org/api/courses.v1?q=search&query=english&fields=photoUrl,description&limit=20'; 
    $content = file_get_contents($url); 
    $decode_data = json_decode($content, true); 

    echo "<pre>"; 
    print_r($decode_data); 
    echo "</pre>"; 
} 

Sample JSON Url

+0

同样的结果,没有任何改变.. –

+0

我认为url链接是没有任何json数据。 出于测试目的,您可以尝试用'$ url ='https://api.coursera.org/api/courses.v1?q = search&query = english&fields = photoUrl,description&limit = 20';'替换网址,然后查看是否你会得到任何数据或回应。 –

+0

如果你在浏览器中打开该链接,你应该看到json数据。 –

0

也许你在授权方面有问题。您确定,应用程序已登录。 与BareNakedCoder相同我被重定向到登录页面。那么也许还有其他的认证方式,例如基本的认证或API令​​牌? 但是,如果你收到任何数据,请

print_r($file_get_contents('http://tickets.eritreaevents.com/agent/data')); 

表现出来或使用卷曲:

$s = curl_init(); 

curl_setopt($s,CURLOPT_URL, 'http://tickets...'); 
curl_setopt($s,CURLOPT_RETURNTRANSFER,true); 
// curl_setopt($s, CURLOPT_USERPWD, $user.':'.$pass); // Basic Auth 
$data = curl_exec($s); 
print_r($data); 
curl_close($s);