int codeClass = code / 100; Response ret = new Response(majorVersion, minorVersion, code, codeClass, message, responseHeaders);
InputStream body = null;
  Response readResponse(LineInputStream in)    throws IOException  {    String line;    int len;        // Read response status line    line = in.readLine();    if (line == null)      {        throw new ProtocolException("Peer closed connection");      }    if (!line.startsWith("HTTP/"))      {        throw new ProtocolException(line);      }    len = line.length();    int start = 5, end = 6;    while (line.charAt(end) != '.')      {        end++;      }    int majorVersion = Integer.parseInt(line.substring(start, end));    start = end + 1;    end = start + 1;    while (line.charAt(end) != ' ')      {        end++;      }    int minorVersion = Integer.parseInt(line.substring(start, end));    start = end + 1;    end = start + 3;    int code = Integer.parseInt(line.substring(start, end));    String message = line.substring(end + 1, len - 1);    // Read response headers    Headers responseHeaders = new Headers();    responseHeaders.parse(in);    notifyHeaderHandlers(responseHeaders);    // Construct response    int codeClass = code / 100;    Response ret = new Response(majorVersion, minorVersion, code,                                codeClass, message, responseHeaders);    switch (code)      {      case 204:      case 205:      case 304:        break;      default:        // Does response body reader want body?        boolean notify = (responseBodyReader != null);        if (notify)          {            if (!responseBodyReader.accept(this, ret))              {                notify = false;              }          }        readResponseBody(ret, in, notify);      }    return ret;  }