2014-11-27 3 views
-1

Хорошо, я постараюсь, чтобы это было коротко. Я делаю запрос на простой PHP API, который может быть выполнен AJAX через Javascript или JQuery, однако я хочу сделать запрос с помощью PHP. Каков наилучший способ сделать это? Использование функции file_get_contents() или CURL? Если да, то как мне это сделать через CURL, поскольку API требует, чтобы я использовал GET not POST. Также ответ, который я знаю, находится в XML, как я могу обработать ответ после его возвращения?Как я могу получить и обработать ответ от PHP API

Этот вопрос, возможно, был задан много раз, однако при рассмотрении большого количества вопросов и ответов они не соответствуют моим потребностям на этом, поэтому не отвечайте на вопросы «Пожалуйста, см. Эту ссылку», поскольку я могу гарантировать, что это выиграет «Ответ на вопрос полностью, так как многие из них делают запросы от Facebook API или другого API, который не выполняет то, что использует API, который я использую.

+0

http://php.net/manual/en/book.curl.php – Halcyon

ответ

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 ($ ч, CURLOPT_USERPWD, "пользователь: пароль");

curl_setopt ($ ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

+0

Я рад, что это помогло вам :) –