
REST
客户端
|
349
这种情况下返回的是
JSON
数据,需要用
Author
的
Factory
方法解码并构建一个
Author
类的实例。
更新资源
更新一个已有资源比获取信息稍难一些。在这种情况下,你需要用
PUT
方法。由于
PUT
原来被准备用来处理文件上传,因此
PUT
请求需要你用流式文件来把数据传输到远程服务。
比起在磁盘上创建文件并传输流式文件,示例
16-3
提供的
PHP
脚本使用了
'memory'
流:
首先填充要发送的数据,接着回绕到它刚写入的数据的起点,并且最终使
curl
对象指向
此文件。
示例 16-3:更新图书数据
$bookID = "ProgrammingPHP";
$url = "http://example.com/api/books/{$bookID}";
$data = json_encode(array(
'edition' => 4,
));
$requestData = http_build_query($data, '', '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$fh = fopen("php://memory", 'rw');
fwrite($fh, $requestData);
rewind($fh);
curl_setopt($ch, CURLOPT_INFILE, $fh);
curl_setopt($ch, CURLOPT_INFILESIZE, mb_strlen($requestData)); ...