'Perform a request on a given urllib connection object taken from our
pool.
:param conn:
a connection from one of our connection pools
:param timeout:
Socket timeout in seconds for the request. This can be a
float or integer, which will set the same timeout value for
the socket connect and the socket read, or an instance of
:class:`urllib3.util.Timeout`, which gives you more fine-grained
control over your timeouts.'

def _make_request(self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw):

    self.num_requests += 1
    timeout_obj = self._get_timeout(timeout)
    timeout_obj.start_connect()
    conn.timeout = timeout_obj.connect_timeout
    try:
        self._validate_conn(conn)
    except (SocketTimeout, BaseSSLError) as e:
        self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
        raise
    if chunked:
        conn.request_chunked(method, url, **httplib_request_kw)
    else:
        conn.request(method, url, **httplib_request_kw)
    read_timeout = timeout_obj.read_timeout
    if getattr(conn, 'sock', None):
        if (read_timeout == 0):
            raise ReadTimeoutError(self, url, ('Read    timed    out.    (read    timeout=%s)' % read_timeout))
        if (read_timeout is Timeout.DEFAULT_TIMEOUT):
            conn.sock.settimeout(socket.getdefaulttimeout())
        else:
            conn.sock.settimeout(read_timeout)
    try:
        try:
            httplib_response = conn.getresponse(buffering=True)
        except TypeError:
            httplib_response = conn.getresponse()
    except (SocketTimeout, BaseSSLError, SocketError) as e:
        self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
        raise
    http_version = getattr(conn, '_http_vsn_str', 'HTTP/?')
    log.debug('"%s    %s    %s"    %s    %s', method, url, http_version, httplib_response.status, httplib_response.length)
    try:
        assert_header_parsing(httplib_response.msg)
    except HeaderParsingError as hpe:
        log.warning('Failed    to    parse    headers    (url=%s):    %s', self._absolute_url(url), hpe, exc_info=True)
    return httplib_response
