werkint/reactphp-http-client

此包已被废弃,不再维护。作者建议使用werkint/reactphp-http-client包。

异步HTTP客户端库。

v0.4.14 2016-10-28 18:03 UTC

README

Build Status Code Climate

基本的HTTP/1.0客户端。

基本用法

请求通过 Client#request() 方法准备。可以使用 Request#write() 发送正文。Request#end() 完成发送请求(如果没有写入正文,则发送请求)。

请求实现了 WritableStreamInterface,因此可以将流管道连接到它。响应实现了 ReadableStreamInterface。

请求发出的有趣事件

  • response:从服务器接收到响应头并成功解析。第一个参数是响应实例。
  • error:发生错误。
  • end:请求完成。如果发生错误,则作为第一个参数传递。第二个和第三个参数是响应和请求。

响应发出的有趣事件

  • data:将响应体的一部分作为第一个参数传递,并将响应对象本身作为第二个参数传递。当响应遇到分块编码的响应时,它将透明地解析它,为Response的用户移除Transfer-Encoding头。
  • error:发生错误。
  • end:响应已完全接收。如果发生错误,则作为第一个参数传递。

示例

<?php

$loop = React\EventLoop\Factory::create();

$dnsResolverFactory = new React\Dns\Resolver\Factory();
$dnsResolver = $dnsResolverFactory->createCached('8.8.8.8', $loop);

$factory = new React\HttpClient\Factory();
$client = $factory->create($loop, $dnsResolver);

$request = $client->request('GET', 'https://github.com/');
$request->on('response', function ($response) {
    $response->on('data', function ($data, $response) {
        // ...
    });
});
$request->end();
$loop->run();

也请参阅示例

待办事项

  • gzip内容编码
  • 持久连接
  • 重定向