public AsyncRequesterBase(CommandLineOptions options) { #if NET452 var requestHandler = new WebRequestHandler() { UseCookies = false, UseDefaultCredentials = true, ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true }; #else var requestHandler = new HttpClientHandler() { UseCookies = false, UseDefaultCredentials = true }; #endif if (options.UseProxy) { requestHandler.UseProxy = true; requestHandler.Proxy = WebRequest.GetSystemWebProxy(); } _client = new HttpClient(requestHandler); _options = options; _url = new TokenisedString(options.Url); if (!string.IsNullOrEmpty(options.Template)) { _templateParser = new TemplateParser(File.ReadAllText(options.Template)); _randomValueProvider = new RandomValueProvider( new[] { _url }.Concat(_templateParser.Headers.Select(x => x.Value)).ToArray()); } else { _randomValueProvider = new RandomValueProvider(_url); } _valueProvider = new NoValueProvider(); if (!string.IsNullOrEmpty(_options.Plugin)) // plugin { var assembly = Assembly.LoadFile(_options.Plugin); var valueProviderType = assembly.GetExportedTypes().FirstOrDefault(t => typeof(IValueProvider) .IsAssignableFrom(t)); if (valueProviderType == null) { throw new ArgumentException("No public type in plugin implements IValueProvider."); } _valueProvider = (IValueProvider)Activator.CreateInstance(valueProviderType); } else if (!string.IsNullOrEmpty(options.ValuesFile)) // csv values file { _valueProvider = new SeparatedFileValueProvider(options.ValuesFile, options.IsTsv ? '\t' : ',', options.Shuffle); } }
public Requester(CommandLineOptions options) { var requestHandler = new WebRequestHandler() { UseCookies = false, UseDefaultCredentials = true }; if (options.UseProxy) { requestHandler.UseProxy = true; requestHandler.Proxy = WebRequest.GetSystemWebProxy(); } _client = new HttpClient(requestHandler); _options = options; _url = new TokenisedString(options.Url); if (!string.IsNullOrEmpty(options.Template)) { _templateParser = new TemplateParser(File.ReadAllText(options.Template)); _randomValueProvider = new RandomValueProvider( new[] { _url }.Concat(_templateParser.Headers.Select(x => x.Value)).ToArray()); } else { _randomValueProvider = new RandomValueProvider(_url); } _valueProvider = new NoValueProvider(); if (!string.IsNullOrEmpty(_options.Plugin)) // plugin { var assembly = Assembly.LoadFile(_options.Plugin); var valueProviderType = assembly.GetExportedTypes().Where(t => typeof (IValueProvider) .IsAssignableFrom(t)).FirstOrDefault(); if(valueProviderType==null) throw new ArgumentException("No public type in plugin implements IValueProvider."); _valueProvider = (IValueProvider)Activator.CreateInstance(valueProviderType); } else if (!string.IsNullOrEmpty(options.ValuesFile)) // csv values file { _valueProvider = new SeparatedFileValueProvider(options.ValuesFile, options.IsTsv ? '\t' : ','); } }