/** * Adds an HTTP header to all requests * @param mixed either a string or a HeaderField * @return $this */ public function addHeader($header) { if (is_string($header)) { $header = HeaderField::fromString($header); } $this->headers[] = $header; return $this; }
/** * Parses a response into headers and a body */ private function _buildResponse($response) { $sections = explode("\r\n\r\n", $response, 2); $body = isset($sections[1]) ? $sections[1] : NULL; $headers = array(); $headerlines = explode("\n", $sections[0]); // process status list($http, $code, $message) = explode(' ', $headerlines[0], 3); // process headers foreach (array_slice($headerlines, 1) as $headerline) { $headers[] = HeaderField::fromString($headerline); } $response = new Response($code, $headers, $body); return $response; }
public function testRoundTrip() { $string = "Test: blarg: meh\r\n"; $this->assertEquals(Http\HeaderField::fromString($string)->__toString(), $string); }