试图显示API飞行信息

时间:2019-07-16 08:28:41

标签: php html json curl

阿姆斯特丹史基浦机场提供免费的航班信息API访问。我正在尝试建立一个简单的网站,使我自己可以看到这些信息。

十多年前,我已经使用html / php / mysql建立了网站,但是我完全迷失了这个json / curl / APIs的新世界。如果有人可以给我一个启动的机会或我可以建立的榜样,那就太好了。

在API网站上有一个有关如何使用该API的示例,但它根本不显示任何内容(附带代码)。

查看错误代码,未找到。

API网站:https://developer.schiphol.nl/apis/flight-api/v4/flights?version=latest

<html>
   <head>
      <title>Public flight</title>
   </head>
   <body>

      <?php
echo '<h1>Public flight API</h1>';
$app_id  = '7c1af90e';
$app_key = '35f61a4f0b2cacce9bc0d502ad56ce35';

$curl = curl_init('https://api.schiphol.nl/public-flights/flights');

curl_setopt_array($curl, array(
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'resourceversion: v4',
    'app_id: ' . $app_id,
    'app_key: ' . $app_key
  ),
  CURLOPT_SSL_VERIFYPEER => 0
));

$response = curl_exec($curl);

if (curl_errno($curl)) {
  echo 'Error - ' . curl_error($curl);
} else {
  $array = json_decode($response, true);
  echo '<table>';
  foreach ($array['flights'] as $flight) {
    echo '<tr>';
    echo '<td>' . $flight['flightName'] . '</td>';
    echo '<td>' . (string) $flight['scheduleDate'] . '</td>';
    echo '</tr>';
  }
  echo '</table>';
}
curl_close($curl);
?>
  </body>
</html>

期望查看航班信息,但什么也不会显示。 HTML表为空。

1 个答案:

答案 0 :(得分:0)

CURLOPT_HTTPHEADER => array(
    'resourceversion: v4',
    'app_id: ' . $app_id,
    'app_key: ' . $app_key,
    'accept: application/json'
),

在标头中,您必须接受application / json。然后,您将检索结果。我修复后在本地测试您的代码,并且html页面生成良好。

结果输出为:

Public flight API
HV5588  2019-07-16
SU2193  2019-07-16
KL3183  2019-07-16
AM7035  2019-07-16
HV6730  2019-07-16
KL2688  2019-07-16
HV5624  2019-07-16
KL2676  2019-07-16
HV5752  2019-07-16
KL2624  2019-07-16
HV5662  2019-07-16
KL2690  2019-07-16
HV6874  2019-07-16
KL2620  2019-07-16
HV5428  2019-07-16
KL2581  2019-07-16
HV6674  2019-07-16
KL2630  2019-07-16
HV5542  2019-07-16
HV6146  2019-07-16