如何从PHP API获取和处理响应

时间:2014-11-27 23:03:49

标签: php api curl

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

这个问题可能已被多次询问,但是在回顾很多问题和答案时,它们并不是我对此需求的具体要求,所以请不要回答“请看这个链接”,因为我可以保证它赢了'完全回答这个问题,因为他们中的很多人正在向Facebook API或其他API发出请求,而这些请求与我正在使用的API无关。

1 个答案:

答案 0 :(得分:0)

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键和MessagesOutBytesRate中的值

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

curl_setopt($ ch,CURLOPT_USERPWD," user:password");

curl_setopt($ ch,CURLOPT_HTTPAUTH,CURLAUTH_ANY);