我想从Carquery API获取Json数据。但是我的代码都没有用。
首先,我尝试使用curl获取数据。这是我的代码
$loginUrl = 'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$loginUrl);
$result=curl_exec($ch);
curl_close($ch);
var_dump(json_decode($result));
它返回null。然后我尝试使用file_get_content。这是我的代码:
$json = file_get_contents('http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015');
$obj = json_decode($json);
var_dump($obj);
不幸的是它也没有用。
请帮忙吗?
答案 0 :(得分:0)
首先尝试这个:
$loginUrl = 'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$loginUrl);
$result=curl_exec($ch);
if($result === false)
{
echo 'Curl error: ' . curl_error($ch);
}
else
{
var_dump(json_decode($result));
}
curl_close($ch);
所以你可以在curl请求上看到错误。
和第二件事网址:
'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015'
你确定必须是2(2)?
(问号)吗?
答案 1 :(得分:0)
从该API返回的json数据不正确,我尝试使用jsonlint.com进行检查。
如果从
中删除了回调部分'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015';
进入
'http://www.carqueryapi.com/api/0.3/?cmd=getTrims&year=2015';
它将生成正确的json,可以使用file_get_content()或curl进行解析。