werkint / reactphp-http-client
v0.4.14
2016-10-28 18:03 UTC
Requires
- php: >=5.4.0
- evenement/evenement: ~2.0
- guzzlehttp/psr7: ^1.0
- react/dns: 0.4.*
- react/event-loop: 0.4.*
- react/promise: ~2.2
- react/socket-client: ^0.5 || ^0.4 || ^0.3
- react/stream: 0.4.*
This package is not auto-updated.
Last update: 2019-02-20 19:05:52 UTC
README
基本的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内容编码
- 持久连接
- 重定向