[英]Reading REST API Response in PHP
我正在嘗試閱讀Raven SEO Tools API。 它是一個REST API,當我只是通過Web瀏覽器請求URL時,它以XML(或我選擇的JSON)的形式提供數據備份。 什么是從他們的服務器獲取響應到我自己的PHP腳本的最佳方法,然后讓我玩。
任何幫助非常感謝
干杯
如果您只需要檢索URL並解析其信息。 最簡單的方法是curl / JSON組合。 請注意,解析JSON比解析XML更快。
簡單的事情:
$url = "http://api.raventools.com/api?key=B1DFC59CA6EC76FF&method=domains&format=json";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4);
$json = curl_exec($ch);
if(!$json) {
echo curl_error($ch);
}
curl_close($ch);
print_r(json_decode($json));
但是如果你需要從這個API調用其他方法,如DELETE / PUT等,那么在PHP中使用REST客戶端是更優雅的解決方案。 可以在PHP REST客戶端中找到這些客戶端的比較
我專門為Raven API創建了這段代碼https://github.com/stephenyeargin/raventools-api-php
示例代碼:
require 'path/to/raventools-api-php/raventools-api-php.class.php';
$Raven = new RavenTools( 'B1DFC59CA6EC76FF' );
$method = 'domains';
$options = array('format'=> 'json');
$responseString = $Raven->getJSON($method, $options);
print_r(json_decode($responseString));
卷曲
cUrl是一個命令行工具,用於使用URL語法獲取或發送文件。
curl -o example.html www.example.com
的file_get_contents
<?php
$homepage = file_get_contents('http://www.example.com/api/parameters');
echo $homepage;
?>
Pecl的HTTPRequest類是一個非常好的客戶端,我一直在將它用於幾個項目。 http://pecl.php.net/package/pecl_http
另一個非常酷的客戶端是Buzz客戶端https://github.com/kriswallsmith/Buzz如果您感興趣的話,它也可以與Symfony2很好用:)
您可以使用其中任何一個,但我認為JSON是最簡單,更輕松的,除非您使用SimpleXML。 決定取決於數據的復雜程度。
鑒於API返回的JSON有效,您可以使用PHP的json_decode()函數將其轉換為數組或對象。
<?php
# retrieve JSON from API here...
# i.e. it is stored in $data as a string
$object = json_decode($data);
$array = json_decode($data, true);
?>
在SimpleXML中 ,它將如下所示:
<?php
$object = simplexml_load_string($data);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.