簡體   English   中英

在PHP中讀取REST API響應

[英]Reading REST API Response in PHP

我正在嘗試閱讀Raven SEO Tools API。 它是一個REST API,當我只是通過Web瀏覽器請求URL時,它以XML(或我選擇的JSON)的形式提供數據備份。 什么是從他們的服務器獲取響應到我自己的PHP腳本的最佳方法,然后讓我玩。

任何幫助非常感謝

干杯

如果您只需要檢索URL並解析其信息。 最簡單的方法是curl / JSON組合。 請注意,解析JSON比解析XML更快。

  1. http://www.php.net/manual/en/function.curl-exec.php
  2. http://www.php.net/manual/en/function.json-decode.php

簡單的事情:

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM