好的,我会尽量保持简短。我正在向一个简单的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);