public static RequestBuilder WithListener <T>(this RequestBuilder requestBuilder) where T : IMessageListener, new()
        {
            var messageListener = new T();

            requestBuilder.AddMessageListener(messageListener);

            return(requestBuilder);
        }
        public static RequestBuilder OnResponse(this RequestBuilder requestBuilder, Func <HttpResponseMessage, Task> onResponseMessage)
        {
            requestBuilder.AddMessageListener(new SimpleMessageListener(null, onResponseMessage));

            return(requestBuilder);
        }
        public static RequestBuilder OnRequest(this RequestBuilder requestBuilder, Action <HttpRequestMessage> onRequestMessage)
        {
            requestBuilder.AddMessageListener(new SimpleMessageListener(onRequestMessage, null));

            return(requestBuilder);
        }
        public static RequestBuilder WithListener(this RequestBuilder requestBuilder, IMessageListener messageListener)
        {
            requestBuilder.AddMessageListener(messageListener);

            return(requestBuilder);
        }