thomseddon / http
受node的superagent启发的精美简洁的PHP HTTP客户端
Requires
- php: >=5.3
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 4.1.*
This package is not auto-updated.
Last update: 2020-01-20 04:00:25 UTC
README
受node的superagent启发的精美简洁的PHP HTTP客户端。
这是一个beta版本
安装
手动下载或通过composer
composer.phar require thomseddon/http:dev-master
然后需要
# Autoload
require_once 'vendor/autoload.php'
# Or manually
require_once '/path/to/vendor/thomseddon/http/lib/HTTP.php'
示例
GET
require_once '/path/to/vendor/thomseddon/http/lib/HTTP.php' $res = HTTP::get('http://httpbin.org/status/418')->send(); var_dump($res->error()); var_dump($res->status()); var_dump($res->body());
打印
bool(false)
int(418)
string(135) "
-=[ teapot ]=-
_...._
.' _ _ `.
| ."` ^ `". _,
\_;`"---"`|//
| ;/
\_ _/
`"""`
"
POST JSON
require_once '/path/to/vendor/thomseddon/http/lib/HTTP.php' $res = HTTP::post('http://httpbin.org/post')->json(array( 'doing' => 'post' ))->send(); var_dump($res->status()); var_dump($res->body());
打印
int(200)
class stdClass#3 (8) {
...
public $json =>
class stdClass#8 (1) {
public $doing =>
string(4) "post"
}
...
}
API
HTTP
HTTP::get(string $url)
返回一个设置方法为GET
的HTTP_Request实例
HTTP::post(string $url)
返回一个设置方法为POST
的HTTP_Request实例
HTTP::put(string $url)
返回一个设置方法为PUT
的HTTP_Request实例
HTTP::del(string $url)
返回一个设置方法为DELETE
的HTTP_Request实例
HTTP::configure(array $config)
可以设置两个键
base
string - 此字符串将在send()
期间添加到所有url
之前headers
array - 将与所有后续请求一起发送的头部数组的头部
HTTP::configure(array( 'base' => 'http://api.mysite.com/v1', 'headers' => array( 'User-Agent' => 'Frontend Service (0.1)' ) )); HTTP::get('/status'); // GET's http://api.mysite.com/v1/status
HTTP::on(string $event, function $handler)
添加一个在$event
发生时会被调用的处理程序
HTTP::emit(string $event, mixed $data = null)
触发一个事件,$data
将被作为第一个参数传递给任何处理程序
HTTP_Request
所有方法(除了send)都返回$this
,因此可以链式调用以获得更多乐趣。
method(string $method)
设置HTTP方法
url(string $url)
设置URL
set(mixed $data, mixed $value = false)
设置头部,以下等价
HTTP::get('http://google.com')->set(array( 'User-Agent' => 'My Service (0.1)' )); HTTP::get('http://google.com')->set('User-Agent', 'My Service (0.1)'); HTTP::get('http://google.com')->set('User-Agent: My Service (0.1)');
query(array $query)
设置查询参数,期望是key => value
数组
json(mixed $data)
设置json体:对数据进行json_encodes
并设置Content-Type
和Content-Length
头部
attach(mixed $files, $path = null)
附加文件,以下操作等效
HTTP::post('http://uploads.com')->attach(array( 'cat' => '/cats/large.png' )); HTTP::post('http://uploads.com')->attach('cat', '/cats/large.png');
send()
发送请求,返回一个 HTTP_Response
HTTP 响应
error()
bool
表示请求是否未成功
status()
HTTP 状态码
body()
响应体
测试
phpunit
作者
许可
MIT 许可证
版权所有 (c) 2014 Thom Seddon
以下条件下,任何人获得本软件及其相关文档文件(“软件”)的副本,均可免费处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的人进行上述操作:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途适用性或非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论是源于、因之或与此软件或软件的使用或其他处理有关。