简单但已建立/完整的PHP REST客户端?

简单但已建立/完整的PHP REST客户端?,php,http,rest,Php,Http,Rest,我希望在PHP中实现一个REST客户机,并且之前一直在使用的是的一个修改版本,这与我想要的非常接近,但我不是在蛋糕上构建,所以这不在列表中 我正在寻找一个REST客户端,它允许我发出基本的REST请求,并返回请求的头/体。可选但需要的功能: HTTP基本身份验证 以下重定向 退出并重新请求失败的请求 我通读了一遍,发现了一大堆毫无帮助的答案,其中主要包括“自己编写,不难”或“使用cURL”(即与前一个相同)或“这里有一个代码片段可以做到”(当然不是建立的或健壮的)。是最有潜在帮助的,但它有上

我希望在PHP中实现一个REST客户机,并且之前一直在使用的是的一个修改版本,这与我想要的非常接近,但我不是在蛋糕上构建,所以这不在列表中

我正在寻找一个REST客户端,它允许我发出基本的REST请求,并返回请求的头/体。可选但需要的功能:

  • HTTP基本身份验证
  • 以下重定向
  • 退出并重新请求失败的请求
我通读了一遍,发现了一大堆毫无帮助的答案,其中主要包括“自己编写,不难”或“使用cURL”(即与前一个相同)或“这里有一个代码片段可以做到”(当然不是建立的或健壮的)。是最有潜在帮助的,但它有上面的内容,加上作者发布的两个内容,这些内容非常基本,缺少上面的一些功能,虽然他们可能会这样做,但很难像我希望的那样建立或维护

这个问题还涉及到,它有一个相反的问题——虽然强大且支持良好,但它似乎非常复杂,难以配置和设置,而且比我想要的要多得多

那么:有没有人知道一个为PHP建立的REST客户机,它只处理REST请求,很小而且很集中(我想是一个,也许是两个PHP文件),但是它被广泛使用和支持?我不是在寻找HTTP使用的框架或革命——只是一个执行基本REST请求的库。我不想再重新发明轮子,每天都有成千上万(如果不是数百万)的PHP项目使用REST,我很惊讶我没有发现这样的东西


有很多高质量的REST服务器库可用-为什么不使用REST客户端?我基本上是在寻找类似的东西,但作为一个客户。(从上面看)看起来很好,而且是最近的,但我只是很惊讶没有比这更成熟的东西。

你可以看看,或者甚至是。但是,它们只与HTTP请求/响应过程有关。你可能在寻找更多的东西?REST设计与HTTP协议非常交叉,因此无法在其上构建更多的抽象。

中有许多高级功能,但我仍然认为您可以轻松地将其用于最低要求

  • 从GitHub发布页面下载包含您需要的所有类的phar文件:
  • 在应用程序中包括phar文件(这将为Guzzle配置自动加载器)
  • 创建客户机
  • 将ExponentialBackoffPlugin附加到客户端
  • 从客户端发送请求
  • 例如:

    <?php
    
    // Include the phar and register the autoloader
    require 'guzzle.phar';
    
    // Create a client for http://test.com (binding to a host is optional)
    $client = new Guzzle\Http\Client('http://test.com');
    
    // Attach the exponential backoff plugin to the client so that requests 
    // are retried automatically
    $client->addSubscriber(Guzzle\Plugin\Backoff\BackoffPlugin::getExponentialBackoff());
    
    // Create and send a GET request to grab the response
    $response = $client->get('/foo.json')->send();
    
    // Dump the JSON response data as an array
    var_dump($response->json());
    

    cURL相当冗长,PHAR需要大量的设置。如果您想要一个非常简单的REST选项,请尝试以下方法:


    打印文件获取内容(“”)

    很好的回答,很容易理解。我可以在哪里下载guzzle.phar?链接断开了,但是你可以在这里找到每个版本的guzzle.phar文件:一次投票提醒我,我从来没有接受过这里的答案。在我的问题中,我最终使用了as-link——它做得很好,没有太多的宣传或我没有使用的额外代码。然而,我最终没有实现指数退避——如果我真的需要,我会再看一眼Guzzle。