Я пытаюсь прочитать данные об осадках из веб-служб Национального центра климатических данных с PHP, но я не могу понять, как это читать. В документации говорится, что это веб-сервис RESTful. У меня есть токен, я перепробовал все, что мог придумать, и искал в Интернете любые предложения, которые мог найти, но я не могу заставить его что-либо вернуть. Мой первый шаг - использовать веб-службу для запроса списка наборов данных, поэтому я знаю, какой набор данных использовать, когда я запрашиваю фактические данные. Вот код, который я использовал, чтобы запросить наборы данных. Может ли кто-нибудь направить меня в правильном направлении, чтобы прочитать результаты?
$url = "https://www.ncdc.noaa.gov/cdo-web/api/v2/datasets?stationid=COOP:010957";
$curl_post_data = array("token" => $token);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_HTTPHEADER,array('Content-type: application/json','Content-length: '.strlen($curl_post_data)));
$curl_response = curl_exec($curl);
curl_close($curl);
$json_a = json_decode($curl_response,TRUE);
var_dump($json_a); // just to see the structure.
echo "\n";
foreach($json_a as $row){
echo $row->status;
echo "\n";
}
var_dump($curl_response)
. В моем случае это дает мне ошибку 500 с сервера. Может быть проблема с запросом, который вы отправили на сервер. Я предполагаю, что в моем случае это просто из-за токена, но это может быть ваша проблема. Также проверьтеjson_last_error_msg()
. Не думайте, что синтаксический анализатор JSON преуспел. Также может быть проблема с json, который сервер отправляет обратно. Кроме того, я не вижу здесь проблем с PHP. В любом случае мы ничего не сможем исправить в вашем коде. Вам нужно будет обратиться к документации и поддержке API. - person Sherif   schedule 09.02.2020