public static function createFromRawResponse($rawResponse)
{
$response = new self($rawResponse);
$lines = preg_split('/(\\r?\\n)/', $rawResponse);
$linesLen = count($lines);
for ($i = 0; $i < $linesLen; $i++) {
if (0 == $i) {
preg_match('/^HTTP\\/(\\d\\.\\d)\\s(\\d+)\\s(.+)/', $lines[$i], $statusLine);
$response->setStatusCode($statusCode = $statusLine[2]);
continue;
}
if (empty($lines[$i])) {
$body = array_slice($lines, $i + 1);
$response->setBody(implode("\n", $body));
break;
}
if (strpos($lines[$i], ':')) {
$headerParts = explode(':', $lines[$i]);
$response->setHeader($headerParts[0], $headerParts[1]);
}
}
return $response;
}