micke wilhelm/httpful

此包已被废弃且不再维护。作者建议使用nategood/httpful包。

易读、链式、REST友好型PHP HTTP客户端

0.2.17 2014-08-24 21:57 UTC

README

Build Status Total Downloads

Httpful是一个用于PHP 5.3+的简单Http客户端库。强调可读性、简洁性和灵活性——基本上提供完成任务的功能和灵活性,并使这些功能易于使用。

特性

  • 支持易读的HTTP方法(GET、PUT、POST、DELETE、HEAD、PATCH和OPTIONS)
  • 自定义头部
  • 自动“智能”解析
  • 自动负载序列化
  • 基本认证
  • 客户端证书认证
  • 请求“模板”

预览

以下是一些吸引你的内容。搜索包含“#PHP”的twitter API中的推文。随意添加一个简单的头部。请注意,库自动将响应解释为JSON(如果需要,可以覆盖此行为)并解析为对象数组。

$url = "http://search.twitter.com/search.json?q=" . urlencode('#PHP');
$response = Request::get($url)
    ->withXTrivialHeader('Just as a demo')
    ->send();

foreach ($response->body->results as $tweet) {
    echo "@{$tweet->from_user} tweets \"{$tweet->text}\"\n";
}

安装

Phar

一个PHP存档(或.phar)文件可用于下载。只需下载 .phar文件,将其放入您的项目中,并像包含任何其他php文件一样包含它。此方法非常适合小型项目、一次性脚本和快速API破解

include('httpful.phar');
$r = \Httpful\Request::get($uri)->sendIt();
...

Composer

Httpful遵循PSR-0规范,可以使用composer安装。只需将nategood/httpful添加到您的composer.json文件中。Composer是PEAR的合理替代品。它非常适合管理大型项目中的依赖项

{
    "require": {
        "nategood/httpful": "*"
    }
}

从源安装

由于Httpful遵循PSR-0规范,您还可以克隆Httpful存储库并使用PSR-0兼容的自动加载器加载库,例如Symfony的。或者,您可以使用Httpful附带(简单地require("bootstrap.php"))的PSR-0兼容的自动加载器。

更多内容!

您可以通过Httpful Landing Page了解更多信息,包括许多示例和文档

贡献

Httpful强烈鼓励发送拉取请求。提交拉取请求时,请

  • 所有拉取请求应针对dev分支(而不是master
  • 确保您的代码遵循编码规范
  • 请使用软制表符(四个空格)而不是硬制表符
  • 确保为您的更改添加适当的测试覆盖率
  • 通过phpunit ./tests在测试目录中运行所有单元测试
  • 在适当的位置包含注释,并添加描述性的拉取请求消息

变更日志

0.2.18

0.2.17

  • 功能 PR #144 为 Response 类添加额外的参数以指定关于请求/响应的额外元数据(例如,重定向次数)。

0.2.16

  • 功能 添加对 whenError 的支持,以便定义在发生错误时触发的自定义回调。这对于日志记录或覆盖默认错误日志行为非常有用。

0.2.15

  • 功能 I #131 支持 SOCKS 代理

0.2.14

  • 功能 I #138 添加了 XML 请求构建的替代选项。在下一个主要版本中,这可能会取代旧版本。

0.2.13

  • 重构 I #121 在 curl 错误上抛出更具描述性的异常
  • 重构 I #122 请求中的代理清洗改进
  • 重构 I #119 更好地记录 Request::body 中的 mimeType 参数
  • 其他代码和测试清理

0.2.12

  • 重构 I #123 支持新的 curl 文件上传方法
  • 功能 I #118 5.4 HTTP 测试服务器
  • 修复 I #109 拼写错误
  • 修复 I #103 处理严格 Ssl 模式下的 CURLOPT_SSL_VERIFYHOST

0.2.11

  • 修复 I #99 防止 HEAD 请求悬挂

0.2.10

  • 修复 I #93 修复了内容长度设置错误的情况

0.2.9

  • 功能 I #89 支持 multipart/form-data(即文件上传)!感谢 @dtelaroli!

0.2.8

  • 修复 Pull Request 86 的通知修复

0.2.7

  • 修复 I #86 使用代理时移除 Connection Established 标头

0.2.6

  • 修复 I #85 空内容长度问题已解决

0.2.5

  • 功能 I #80 I #81 使用 useProxy 方法添加了代理支持。

0.2.4

  • 功能 I #77 设置超时(秒)的便捷方法 $req->timeoutIn(10);
  • 修复 I #75 I #78 检查是否使用摘要身份验证的故障

0.2.3

  • 修复 覆盖默认的 MIME 处理器
  • 修复 PR #73 解析 HTTP 状态代码

0.2.2

  • 功能 支持将 JSON 响应解析为关联数组而不是对象
  • 功能 更好地支持设置 MIME 处理器的构造函数参数

0.2.1

  • 功能 PR #72 允许支持自定义 Accept 标头

0.2.0

  • 重构 PR #49 将头部拆分为自己的类
  • 重构 PR #54 添加了更具体的异常
  • 修复 PR #58 修复了在空 XML 响应上抛出错误的问题
  • 功能 PR #57 添加了对摘要身份验证的支持

0.1.6

  • 可以通过重载followRedirects(int max_redirects)方法设置最大重定向次数
  • Accepts头部的标准合规修复
  • 通过Composer安装时修复启动过程中的错误

0.1.5

  • 使用DIRECTORY_SEPARATOR常量PR #33
  • PR #35
  • 将原始头部属性引用添加到响应中。
  • 组合请求头部,并将原始头部添加到请求对象中。
  • 修复响应错误,并添加更多注释以提高清晰度。
  • 修复了头部解析,允许最小(仅状态行)并符合RFC2616的实际CRLF结束的头部。
  • 添加了所有可接受场景的完美测试Accept:头部,详细信息请参阅@b78e9e82cd9614fbe137c01bde9439c4e16ca323。
  • 添加默认User-Agent头部
  • User-Agent: Httpful/0.1.5 + curl版本 + 服务器软件 + PHP版本
  • 要绕过此“默认”操作,只需在请求头部中添加一个User-Agent,即使是空User-Agent也足够,并且足以产生期望的结果。
  • 完成了新增功能的测试单元。
  • 添加了phpunit覆盖率报告,并帮助phpunit更容易地定位测试。

0.1.4

  • 添加了CSV处理支持PR #32

0.1.3

  • 在JsonParser和XmlParser中处理空响应

0.1.2

  • 添加了设置XMLHandler配置选项的支持
  • 添加了覆盖XmlHandler和注册自定义解析器的示例
  • 移除了httpful.php下载(已弃用,改为使用httpful.phar)

0.1.1

  • 修复了序列化默认情况和phpunit测试

0.1.0

  • 添加了注册Mime处理器支持
  • 创建了所有Mime处理器必须继承的AbstractMimeHandler类型
  • 将解析/序列化逻辑从Request/Response类中提取出来,放入它们各自的MimeHandler类中
  • 添加了为新Mime类型注册新Mime处理器的能力