duanoucuo7045
2014-11-27 23:03
浏览 40
已采纳

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

Ok I will try and keep this short. I'm making a request to a simple PHP API which can be done by AJAX through Javascript or JQuery, however I want to make the request using PHP. What is the best way to do this? Using the file_get_contents() function or CURL? If so how do I do it through CURL as the API requires I use GET not POST. Also the response I know is in XML, how do I then process the response once it comes back?

This question may have been asked many times, however when reviewing a lot of the questions and answers they are not specific to my needs on this one so please no answers with "Please see this link" as I can guarantee it won't answer the question in full as a lot of them are making requests from either Facebook API or another API that does not do what the API I am using does.

图片转代码服务由CSDN问答提供 功能建议

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

这个问题可能已被多次询问过,但是在回顾很多问题和 答案他们不是特定于我的需求所以请不要回答“请看这个链接”,因为我可以保证它不会完全回答这个问题,因为他们中的很多人都是从Facebook API或其他API提出请求 这不符合我正在使用的API。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • doubo1883 2014-11-27 23:10
    最佳回答
    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;
    

    so you extracted from xml the value from ConnectionsCurrent key and MessagesOutBytesRate .

    If your link does not need to auth remove :

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

    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题