我想从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));
它返回空值。然后我尝试使用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);
不幸的是,它也不起作用。
请帮忙吗?
首先试试这个:
$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(两个)?
(问号)吗?
从
该 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 进行解析。