当前位置:  开发笔记 > 编程语言 > 正文

PHP REST客户端

如何解决《PHPREST客户端》经验,为你挑选了5个好方法。

我正在尝试连接到RESTful Web服务,但我遇到了一些麻烦,特别是在通过PUT和DELETE发送数据时.使用cURL,PUT需要一个文件发送,而DELETE只是很奇怪.我完全有能力使用PHP的套接字支持编写客户端并自己编写HTTP头文件,但我想知道你们是否曾经使用或看过PHP的REST客户端?



1> Matt Zukowsk..:

事实证明,Zend_Rest_Client根本不是REST客户端 - 例如它不支持PUT和DELETE方法.在尝试将其用于实际的RESTful服务之后,我厌倦了为PHP编写了一个合适的REST客户端:

http://github.com/educoder/pest

它仍然缺少一些东西,但如果它被拿起来,我会把更多的工作投入其中.

以下是OpenStreetMap REST服务的使用示例:

get('/map?bbox=-79.39997,43.65827,-79.39344,43.66903');

// Print all of the street names in the map
$streets = $map->xpath('//way/tag[@k="name"]');
foreach ($streets as $s) {
  echo $s['v'] . "\n";
}

?>

目前它使用curl但我可以将它切换到HTTP_Request或HTTP_Request2.

更新:看起来很多人都跳了这个.由于GitHub上的贡献者,Pest现在支持HTTP身份验证和许多其他功能.



2> Michael Dowl..:

我写了一个名为Guzzle的PHP HTTP客户端.Guzzle是用于构建REST Web服务客户端的HTTP客户端和框架.您可以在其网站上找到有关Guzzle的更多信息,或直接访问github上的源代码:https://github.com/guzzle/guzzle

Guzzle提供大多数HTTP客户端提供的好东西(更简单的界面,所有HTTP方法,以及查看请求/响应),还提供其他高级功能:

流实体

指数退避

内置缓存转发代理

饼干

记录

托管持久连接

并行请求

OAuth的

一种插件架构,允许您实现任意身份验证方案

从JSON服务描述文件自动生成客户端API

唯一的缺点:它需要PHP 5.3.3


哇,很多客户端库可供选择...... Guzzle现在是Drupal 8核心的一部分,所以我猜它会存在一段时间.去找这个!

3> ceejayoz..:

我倾向于使用PHP的内置cURL支持.该CURLOPT_CUSTOMREQUEST选项允许你做PUT/ DELETE


是的它太低了.更好的东西,如$ lib-> post($ url,$ params);
它太低了,你搞乱你的代码
它不是太低级别,如果你弄乱你的代码,你做错了.
然后,您可以创建自己的类来执行该低级别并将其用于高级代码

4> 小智..:

用于其余客户端的php中的简单示例 - 更新如下:


php中用于其余客户端的简单示例 - 删除categoryid = xx如下:




5> shurikk..:

我很久没找到优雅的解决方案了,不喜欢cURL实现,想出了我自己的.它支持HTTP身份验证,重定向,PUT等,因为它依赖于pecl http模块.

实现简单,易于扩展.

https://github.com/shurikk/rest-client-php

更多信息可以在这里找到:

http://pecl.php.net/package/pecl_http

http://www.php.net/manual/en/http.request.options.php

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有