使用cURL返回API XML响应

时间:2017-08-12 19:17:53

标签: php xml curl

如果这很简单,请原谅我。我的研究让我暂时停下来。我正在尝试使用cURL来获取XML的API响应。

这是API的网址:https://api.weather.gov/alerts/active/region/land

默认情况下,它以JSON格式返回。我知道,我应该只使用JSON响应,但是有一个原因我需要它在XML中,因为它将无缝集成到我当前的代码中,直到我可以为JSON重写它。

这是API的文档。在API Reference选项卡下的状态我只需要将请求标题更改为application / cap + xml。但我没有收到任何回报。只是一个空白的白页。

https://alerts-v2.weather.gov/documentation

这是我用来调用API的当前代码,但我没有得到任何回复。我错过了什么?

    <?php

     $headers[] = 'Connection: Keep-Alive';
     $headers[] = 'Content-Type: application/cap+xml;charset=utf-8';
     $headers[] = 'Accept: application/cap+xml';

     $userAgent = 'php';

     $url = 'https://api.weather.gov/alerts/active/region/land';

     $cURL = curl_init();

     curl_setopt($cURL, CURLOPT_URL, $url);
     curl_setopt($cURL, CURLOPT_HTTPHEADER, $headers);
     curl_setopt($cURL, CURLOPT_USERAGENT, $userAgent);
     curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($cURL, CURLOPT_HTTPGET, true);

     $result = curl_exec($cURL);

     curl_close($cURL);

?>

1 个答案:

答案 0 :(得分:0)

我刚试过你的代码,它可以和atom一起使用:

/alerts/active/region/{region} => JSON-LD (default), ATOM 
/alerts/{alertId}   => JSON-LD (default), CAP

&#34;应用/帽+ XML&#34;不适用于网址,就像您在问题中提到的那样。

根据文档https://alerts-v2.weather.gov/documentation,格式如下:

Base.__init__()