Exemplo n.º 1
0
 public function testParseFromString()
 {
     $parser = new Bringit_Header_ResponseHeaderParser();
     $header = $parser->parse("HTTP/1.1 200 OK\r\ncontent-length: 1024\r\n");
     $this->assertEqual($header->fields(), array(new Bringit_Header_HeaderField('Content-Length', '1024')));
     $status = $header->statusLine();
     $this->assertEqual($status->httpVersion(), '1.1');
     $this->assertEqual($status->responseCode(), '200');
     $this->assertEqual($status->reasonPhrase(), 'OK');
     $this->assertEqual($status->__toString(), "HTTP/1.1 200 OK\r\n");
 }
Exemplo n.º 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);
 }