/// <summary>
 /// Use timer middleware which measures how long the request takes.
 /// </summary>
 /// <param name="builder">Builder instance</param>
 /// <param name="options">Options to specify for the timer options.</param>
 public static FluentHttpClientBuilder UseTimer(this FluentHttpClientBuilder builder, TimerHttpMiddlewareOptions options = null)
 => builder.UseMiddleware <TimerHttpMiddleware>(options ?? new TimerHttpMiddlewareOptions());
 /// <summary>
 /// Use logger middleware which logs out going requests and incoming responses.
 /// </summary>
 /// <param name="builder">Builder instance</param>
 /// <param name="options"></param>
 public static FluentHttpClientBuilder UseLogging(this FluentHttpClientBuilder builder, LoggerHttpMiddlewareOptions options = null)
 => builder.UseMiddleware <LoggerHttpMiddleware>(options ?? new LoggerHttpMiddlewareOptions());
 /// <summary>
 /// Use response caching middleware which get from cache or get from remote and cache responses.
 /// </summary>
 /// <param name="builder">Builder instance</param>
 /// <param name="options"></param>
 public static FluentHttpClientBuilder UseResponseCaching(this FluentHttpClientBuilder builder, ResponseCacheHttpMiddlewareOptions options = null)
 => builder.UseMiddleware <ResponseCacheHttpMiddleware>(options ?? new ResponseCacheHttpMiddlewareOptions());