':return: Calls get_default_headers to get the default framework headers,
get_post_data_headers to get the DataContainer headers, merges that info
with the user specified headers (which live in self._headers) and
returns a Headers instance which will be sent to the wire.'

def get_all_headers(self):

    wire_headers = Headers()
    for (k, v) in chain(self._headers.items(), self.get_post_data_headers().items()):
        (_, stored_header_name) = wire_headers.iget(k, None)
        if (stored_header_name is not None):
            wire_headers[stored_header_name] = v
        else:
            wire_headers[k] = v
    return wire_headers
