micke wilhelm / httpful
0.2.17
2014-08-24 21:57 UTC
Requires
- php: >=5.3
- ext-curl: *
Requires (Dev)
README
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
0.2.4
0.2.3
- 修复 覆盖默认的 MIME 处理器
- 修复 PR #73 解析 HTTP 状态代码
0.2.2
- 功能 支持将 JSON 响应解析为关联数组而不是对象
- 功能 更好地支持设置 MIME 处理器的构造函数参数
0.2.1
- 功能 PR #72 允许支持自定义 Accept 标头
0.2.0
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处理器的能力