您好我正在尝试使用此代码使用Curl和PHP从网址获取JSON文件中的数据:
<?php
// Initiate curl
$url = "https://panel.virtualcenter360.es/home/api/getdatasample?dateIni=1376524800&dateEnd=1381795200";
$ch = curl_init($url);
// Set the url
curl_setopt($ch, CURLOPT_URL,$url);
// Execute
$result=curl_exec($ch);
$res = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($result));
var_dump(json_decode($res, true));
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
curl_close($ch);
?>
我收到No errors消息,但结果为NULL。您认为这可能是什么问题?
也许我需要从Curl配置一些参数?
谢谢!
答案 0 :(得分:1)
如果您只需要获取一些json信息,我建议您使用file_get_contents()
而不是cURL函数。
答案 1 :(得分:1)
如果你想使用curl,你必须这样做:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
CURLOPT_SSL_VERIFYPEER
FALSE阻止cURL验证对等方的证书。可以使用CURLOPT_CAINFO选项指定要验证的备用证书,也可以使用CURLOPT_CAPATH选项指定证书目录。
答案 2 :(得分:0)
在Codeigniter应用程序/库文件夹
中header('Content-Length: ' . strlen($output)); //Comment line no. 267 of REST_Controller.php