此包已被废弃,不再维护。没有建议的替代包。

受node的superagent启发的精美简洁的PHP HTTP客户端

dev-master 2014-07-08 16:27 UTC

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-TypeContent-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

作者

Thom Seddon

许可

MIT 许可证

版权所有 (c) 2014 Thom Seddon

以下条件下,任何人获得本软件及其相关文档文件(“软件”)的副本,均可免费处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的人进行上述操作:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途适用性或非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论是源于、因之或与此软件或软件的使用或其他处理有关。