Example #1
0
 protected function sendEntity(StreamInterface $stream, HttpRequest $request, $compress)
 {
     if (!$request->hasEntity()) {
         $stream->write("Content-Length: 0\r\n\r\n");
         return;
     }
     $buffer = new StringStream();
     try {
         if ($compress) {
             $body = new DeflateOutputStream($buffer, DeflateOutputStream::GZIP);
             $body->setCloseCascade(false);
         } else {
             $body = $buffer;
         }
         $request->getEntity()->send($body);
         $body->close();
         $stream->write(sprintf("Content-Length: %u\r\n\r\n", $buffer->tell()));
         $buffer->rewind();
         Stream::pipe($buffer, $stream);
     } finally {
         $buffer->close();
     }
 }