如何获取和处理来自 PHP API 的响应


How can I get and process a response from a PHP API

好的,我会尽量保持简短。我正在向一个简单的PHP API发出请求,该API可以通过Javascript或JQuery由AJAX完成,但是我想使用PHP发出请求。最好的方法是什么?使用 file_get_contents() 函数或 CURL?如果是这样,我如何通过 CURL 做到这一点,因为 API 要求我使用 GET 而不是 POST。我知道的响应也是XML格式的,一旦返回响应,我该如何处理?

这个问题可能已经被问了很多次,但是在审查很多问题和答案时,它们并不特定于我对这个问题的需求,所以请不要回答"请参阅此链接",因为我可以保证它不会完全回答这个问题,因为他们中的很多人正在从 Facebook API 或其他 API 发出请求,这些 API 不执行我正在使用的 API 所做的事情。

function  getXML()
{
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1/index.html");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_USERPWD, "user:password");
 curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
 $res = curl_exec($ch);
 return  $res;
}
    $xml_data = getXML();
    $doc = new DOMDocument();
    $doc->loadXML($xml_data);
    $wms = $doc->getElementsByTagName('WowzaMediaServer');

    $wmstotalactive = $wms->item(0)->getElementsByTagName("ConnectionsCurrent")->item(0)->nodeValue;
    $wmstotaloutbytes = $wms->item(0)->getElementsByTagName("MessagesOutBytesRate")->item(0)->nodeValue;

所以你从xml中提取了ConnectionsCurrent key和MessagesOutBytesRate.

如果您的链接不需要身份验证,请删除:

curl_setopt($ch,CURLOPT_USERPWD,"用户:密码");

curl_setopt($ch、CURLOPT_HTTPAUTH、CURLAUTH_ANY);