Example #1
0
 public function testSimpleEntityBodyMidStream()
 {
     $stream = fopen('php://memory', 'w');
     fwrite($stream, 'test stream data');
     fseek($stream, 9, SEEK_SET);
     $factory = new Bringit_EntityBodyFactory();
     $body = $factory->createFromStream($stream);
     $this->assertEqual($body->contentLength(), 7);
     $this->assertEqual(fread($body->contentStream(), 1024), 'am data');
 }
Example #2
0
 public function handleRequest($request)
 {
     $url = $request->url();
     $socket = fsockopen($this->_ipAddress, $url->port(), $errno, $errstr, self::SOCKET_TIMEOUT_OPEN);
     if (!$socket) {
         throw new Bringit_Exception_ConnectionException(sprintf("Unable to open socket to %s:%d for %s (%d: %s)", $this->_ipAddress, $url->port(), $url, $errno, $errstr));
     }
     // write request line to socket
     fwrite($socket, $request->requestLine()->__toString());
     // write headers to socket
     fwrite($socket, $request->header()->__toString());
     if ($request->hasEntityBody()) {
         $bodyStream = $request->entityBody()->contentStream();
         while (!feof($bodyStream)) {
             fwrite($socket, fread($bodyStream, self::FREAD_CHUNKSIZE));
         }
     }
     $parser = new Bringit_Header_ResponseHeaderParser();
     $responseHeader = $parser->parseStream($socket);
     $entityBodyFactory = new Bringit_EntityBodyFactory();
     $entityBody = $entityBodyFactory->createFromStream($socket);
     return new Bringit_Response($request, $responseHeader, $entityBody);
 }