'Get 100-continue response indicating the end of 1st phase of a 2-phase
commit or the final response, i.e. the one with status >= 200.
Might or might not actually wait for anything. If we said Expect:
100-continue but got back a non-100 response, that\'ll be the thing
returned, and we won\'t do any network IO to get it. OTOH, if we got
a 100 Continue response and sent up the PUT request\'s body, then
we\'ll actually read the 2xx-5xx response off the network here.
:param timeout: time to wait for a response
:param informational: if True then try to get a 100-continue response,
otherwise try to get a final response.
:returns: HTTPResponse
:raises Timeout: if the response took too long'

def await_response(self, timeout, informational=False):

    if (not self.final_resp):
        with Timeout(timeout):
            if informational:
                self.resp = self.conn.getexpect()
            else:
                self.resp = self.conn.getresponse()
    return self.resp
