无法从远程网址获取json内容

时间:2017-11-25 17:25:08

标签: php json file-get-contents

我已尝试过所有内容,但仍无法通过以下网址获取JSON内容:http://onderbrekingen.infrax.be/onderbrekingen/Home/GetOnderbrekingen

这是我最新的php:

$url = 'http://onderbrekingen.infrax.be/onderbrekingen/Home/GetOnderbrekingen';
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, 'http://onderbrekingen.infrax.be/onderbrekingen/Home/GetOnderbrekingen');
curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlSession, $jsonData = json_decode(curl_exec($curlSession));
curl_close($curlSession);

switch (json_last_error()) {
case JSON_ERROR_DEPTH:
    echo 'json_decode() - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
    echo 'json_decode() - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
    echo 'json_decode() - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
    echo 'json_decode() - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
    echo 'json_decode() - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
    echo 'json_decode() - Unknown error';
break;
case JSON_ERROR_NONE:
    print '<b>JSON var_dump:</b>';
    print '</br></br>';
    var_dump($jsonData);
    print '</br></br><hr></br>';
break;
}

print '<b>echo content:</b>';
print '</br>';
echo stream_get_contents(fopen($url, "r"));

我也尝试过file_get_contents(),但也没有用。 var_dump每次都会返回NULLstream_get_contents似乎也无法返回原始JSON内容。

Grtz, phyck

1 个答案:

答案 0 :(得分:0)

替换

curl_setopt($curlSession, $jsonData = json_decode(curl_exec($curlSession));

$jsonData = json_decode(curl_exec($curlSession));
curl_setopt($curlSession, $jsonData,true);

我测试时效果很好

//output
{"Onderbrekingen":[{"Id":"5f303a78-6bcb-e711-80d7-005056b663fa","Cabinenummer":"097LTF","Onderbrekingstype":"Storing","Discipline":"Elektriciteit","Postcode":" ","Gemeente":" ","BeginDatum":"\/Date(1510873200000)\/","EindDatum":null,"BeginUur":"08:46","EindUur":null,"Latitude":0,"Longitude":0,"GeimpacteerdeStraten":[],"GeimpacteerdKlantAantal":"101 - 500","ExtraBeschrijving":null,"DnbCode":null,"Scada":true,"InterneOpmerking":"Aangemaakt vanuit SCADA","IsRedLine":true,"ValidationErrors":null,"IsValid":true,"IsDirty":true,"Error":""}],"ScadaSync":"19:16"}<b>JSON var_dump:</b></br></br>int(1)

<小时/>