15.2. Zend_Service_Rest

15.2.1. Introduction

Zend_Service_Rest 是一个的REST客户端,他用来对基于REST的web service进行查询 .

例 15.1. 一个基本的 REST 请求

在下面的代码中,首先使用 setUri() 方法设置REST web service的 base URI . 然后,调用restGet() 方法来对指定的路径(可以附加查询参数)执行一个GET请求.

<?php
require_once 'Zend/Service/Rest.php;

try {
    $rest = new Zend_Service_Rest();

    $rest->setURI('http://example.org');

    // 返回一个 Zend_HttpClient_Response 对象
    $response = $rest->restGet('/services/rest', 'foo=bar&baz=bat');

    if ($response->isSuccessful()) {
        echo $response->getBody();
    } else {
        echo '<p>An error occurred</p>';
    }
} catch (Zend_Exception $e) {
        echo '<p>An error occurred (' .$e->getMessage(). ')<p>';
}
?>       
[注意] 注意
你可以传递一个格式标准的url查询参数(没有 "?") 到 restGet(), 或者你可以传递一个包含名称->数值的关联数组给它. 无论你执行的是那个方法, 你都要对名称和数值进行URL编码(比如用 urlencode()).

restPost()restPut() 的用法和 restGet()相同, 只不过数据传输的方式不同 ,通过 HTTP POST 或 PUT来代替GET.

restDelete() 方法用来操作一个路径, 但它不包含第二个参数来传递查询参数和数据.