<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def trace_outgoing_web_request(self, url, method, headers=None):
        '''Create a tracer for an outgoing webrequest.

        :param str url: The request URL (including scheme, hostname/port, path and query).
        :param str method: The HTTP method of the request (e.g., GET or POST).
        :param headers: The HTTP headers of the request. Can be either a
            dictionary mapping header name to value (:class:`str` to
            :class:`str`) or a tuple containing a sequence of string header
            names as first element, an equally long sequence of
            corresponding values as second element and optionally a count as
            third element (this will default to the :func:`len` of the
            header names).

            Some headers can appear multiple times in an HTTP request. To
            capture all the values, either use the tuple-form and provide
            the name and corresponding values for each, or if possible for
            that particular header, set the value to an appropriately
            concatenated string.

            .. warning:: If you use Python 2, be sure to use the UTF-8 encoding
                or the :class:`unicode` type! See :ref:`here
                <http-encoding-warning>` for more information.
        :type headers: \
            dict[str, str] or \
            tuple[~typing.Collection[str], ~typing.Collection[str]] or \
            tuple[~typing.Iterable[str], ~typing.Iterable[str], int]]

        :rtype: tracers.OutgoingWebRequestTracer

        .. versionadded:: 1.1.0
        '''
        result = tracers.OutgoingWebRequestTracer(
            self._nsdk, self._nsdk.outgoingwebrequesttracer_create(url, method))

        if not result:
            return result

        try:
            if headers:
                self._nsdk.outgoingwebrequesttracer_add_request_headers(result.handle,
                                                                        *_get_kvc(headers))
        except:
            result.end()
            raise

        return result