Example #1
0
<?php

use Icicle\Http\Client\Client;
use Icicle\Http\Message\RequestInterface;
use Icicle\Http\Message\Response;
use Icicle\Http\Message\ResponseInterface;
use Icicle\Socket\SocketInterface;
use Icicle\Stream\MemorySink;
$collector->addRoute("GET", "/", function (RequestInterface $request, SocketInterface $socket) {
    $stream = new MemorySink();
    (yield $stream->end("hello world"));
    (yield new Response(200, ["content-type" => "text/html", "content-length" => $stream->getLength()], $stream));
});
$collector->addRoute("GET", "/test", function (RequestInterface $request, SocketInterface $socket) {
    $client = new Client();
    /** @var ResponseInterface $response */
    $response = (yield $client->request("GET", "http://jsonplaceholder.typicode.com/posts/1"));
    $stream1 = $response->getBody();
    $stream2 = new MemorySink();
    while ($stream1->isReadable()) {
        $data = (yield $stream1->read());
        (yield $stream2->write($data));
    }
    (yield $stream2->end());
    (yield new Response(200, ["content-type" => "text/html", "content-length" => $stream2->getLength()], $stream2));
});