bool HttpSocketClient::read(HttpResponse& httpResponse)
{
    httpResponse.clear();
    char* buffer = new char[_bufferSize + 1];
    int result;

    while (httpResponse.getParseStatus() != Http::PARSE_STATUS::PARSE_END)
    {
	result = Socket::read(buffer, _bufferSize, 0);
	buffer[result] = '\0';
	if (result == SOCKET_ERROR)
	{
	    close();
	    return false;
	}
	else if (result > 0)
	{
	    if (!httpResponse.parseNewDate(buffer))return false;
	}
	else if (result == 0)
	{
	    if (httpResponse.getParseStatus() != Http::PARSE_STATUS::PARSE_END)
	    {
		httpResponse.endTransfer();
		httpResponse.parse();
	    }
	    break;
	}
	memset(buffer, 0, sizeof (char)*_bufferSize);
    }
    return true;
}