code: protected void readResponseBody(HttpState state, HttpConnection conn)
      throws IOException, HttpException {
          LOG.trace(
              "enter HttpMethodBase.readResponseBody(HttpState, HttpConnection)");
  
          // assume we are not done with the connection if we get a stream
          InputStream stream = readResponseBody(conn);
          if (stream == null) {
              // done using the connection!
              responseBodyConsumed();
          } else {
              conn.setLastResponseInputStream(stream);
              setResponseStream(stream);
          }
      }
docs: Read the response body from the given {@link HttpConnection}.
  
  <p>
  The current implementation wraps the socket level stream with
  an appropriate stream for the type of response (chunked, content-length,
  or auto-close).  If there is no response body, the connection associated
  with the request will be returned to the connection manager.
  </p>
  
  <p>
  Subclasses may want to override this method to to customize the
  processing.
  </p>
  
  @param state the {@link HttpState state} information associated with this method
  @param conn the {@link HttpConnection connection} used to execute
  this HTTP method
  
  @throws IOException if an I/O (transport) error occurs. Some transport exceptions
  can be recovered from.
  @throws HttpException  if a protocol exception occurs. Usually protocol exceptions
  cannot be recovered from.
  
  @see #readResponse
  @see #processResponseBody