Example #1
0
        public static void Main(string[] args)
        {
            var settings = new HttpClientSettings
            {
                Authenticator = new BasicAuthenticator("guest", "guest")
            };

            const string root = "http://localhost:55672/api/";

            //settings.Configure<SimpleJsonSerializer>(s =>
            //    s.ConfigureSettings(c =>
            //    {
            //        c.ContractResolver = new RabbitContractResolver();
            //    }));

            var client = HttpClient.Create(root, settings);

            client.BeforeRequest += delegate(object sender, BeforeRequestEventArgs eventArgs)
            {
                eventArgs.Request.AddHeader("Accept", string.Empty);
            };

            var resource = client.BuildRelativeResource("vhosts", new { });

            var vhosts = client.Get("vhosts")
                         .OnOk()
                         .As <List <Vhost> >();

            Console.WriteLine(vhosts[0].Name);

            Console.ReadLine();
        }
Example #2
0
        private HttpMessageInvoker GetClientInernal(HttpClientSettings clientSetting, params DelegatingHandler[] handlers)
        {
            var defaultHandlers = new DelegatingHandler[]
            {
                new PixivHeaderValueHandler()
            };

            handlers = handlers == null ? defaultHandlers : handlers.Concat(defaultHandlers).ToArray();

            var httpClient = SimpleHttpClient.HttpClientFactory.Create((handler) =>
            {
                handler.Settings = new SimpleHttpClient.HttpConnectionSettings()
                {
                    AutomaticDecompression = DecompressionMethods.GZip
                };
                if (_enableDirectConnect)
                {
                    handler.Settings.EndPointProvider = new PixivEndPointProvider();
                }
            }, handlers);

            if (clientSetting != null)
            {
                httpClient.Timeout = clientSetting.Timeout;
            }

            return(httpClient);
        }
Example #3
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton(Configuration);
            services.TryAddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddOptions();
            services.Configure <VaultSettings>(Configuration.GetSection("Vault"));
            services.AddKeyVault(Configuration);

            var appInsightsSettings = new AppInsightsSettings();

            Configuration.Bind("AppInsights:Context", appInsightsSettings);
            var instrumentationKey = services.GetSecret(Configuration, Configuration["AppInsights:InstrumentationKeySecret"]);

            services.AddAppInsights(appInsightsSettings, instrumentationKey);
            services.AddLogging(instrumentationKey);

            services.Configure <DocDbSettings>("SourceDb", Configuration.GetSection("SourceDb"));
            services.Configure <DocDbSettings>("ChangeDb", Configuration.GetSection("ChangeDb"));
            services.Configure <ChangeTrackSettings>(Configuration.GetSection("ChangeTracking"));

            var clientSettings = new HttpClientSettings();

            Configuration.Bind("Clients:EventsProducerApi", clientSettings);
            services.AddClient <IChangeTracker, ChangeTracker>(clientSettings);

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }
Example #4
0
        public static void Main(string[] args)
        {
            var settings = new HttpClientSettings
            {
                Authenticator = new BasicAuthenticator("guest", "guest")
            };

            const string root = "http://localhost:55672/api/";

            //settings.Configure<SimpleJsonSerializer>(s =>
            //    s.ConfigureSettings(c =>
            //    {
            //        c.ContractResolver = new RabbitContractResolver();
            //    }));

            var client = HttpClient.Create(root, settings);

            client.BeforeRequest += delegate(object sender, BeforeRequestEventArgs eventArgs)
            {
                eventArgs.Request.AddHeader("Accept", string.Empty);
            };

            var resource = client.BuildRelativeResource("vhosts", new { });

            var vhosts = client.Get("vhosts")
               .OnOk()
               .As<List<Vhost>>();

            Console.WriteLine(vhosts[0].Name);

            Console.ReadLine();
        }
Example #5
0
        /// <summary>
        /// Registers implementations that are specific for SphyrnidaeTech.com
        /// </summary>
        /// <param name="services">The service collection</param>
        /// <param name="app">Your version of IApplicationSettings</param>
        /// <param name="env">Your specific IEnvironmentSettings</param>
        public static void RegisterSphyrnidaeServices(this IServiceCollection services, IApplicationSettings app, IEnvironmentSettings env)
        {
            var config = new ServiceConfiguration();
            var http   = new HttpClientSettings(null, env);

            // Standard overrides
            services.TryAddScoped <IIdentityHelper, SphyrnidaeIdentityHelper>();
            services.TryAddScoped <ILoggerConfiguration, SphyrnidaeLoggerConfiguration>();
            services.TryAddSingleton <ILoggers, SphyrnidaeLoggers>();
            services.TryAddTransient <IFeatureToggleSettings, SphyrnidaeFeatureToggleSettings>();
            services.TryAddTransient <IVariableSettings, SphyrnidaeVariableSettings>();
            services.TryAddTransient <IUserPreferenceSettings, SphyrnidaeUserPreferenceSettings>();

            // Email
            services.TryAddTransient <IEmail, DotNetEmail>();
            services.TryAddTransient <IDotNetEmailSettings, SphyrnidaeDotNetEmailSettings>();
            services.TryAddTransient <IEmailDefaultSettings, SphyrnidaeEmailDefaultSettings>();
            services.TryAddTransient <IEmailSettings, SphyrnidaeEmailSettings>();

            // Repositories
            services.TryAddTransient <ILogRepo, LogRepo>();
            services.TryAddTransient <IDefaultUserRepo, DefaultUserRepo>();

            // Web Services
            services.TryAddTransient <IApiAuthenticationWebService, SphyrnidaeApiAuthenticationWebService>();
            services.TryAddTransient <IFeatureToggleWebService, FeatureToggleWebService>();
            services.TryAddTransient <IUserPreferenceWebService, UserPreferenceWebService>();
            services.TryAddTransient <IVariableWebService, VariableWebService>();

            SphyrnidaeServiceRegistration.AddCommonServices(services, config, app, env, http);
        }
        private static void ConfigureUnsecureHttpClientOptions(IServiceProvider provider, HttpClient client)
        {
            HttpClientSettings options = provider.GetService <IConfiguration>()
                                         .GetSection(HttpClientSettings.Section)
                                         .Get <HttpClientSettings>();

            client.BaseAddress = new Uri(options.Url);
        }
        protected override IHttpClient CreateClient()
        {
            var settings = new HttpClientSettings();
            settings.Serializers.Clear();
            settings.Serializers.Add(new DotNetXmlSerializer());
            settings.Logger = new ConsoleLogger();

            return HttpClient.Create("http://localhost:1337/api", settings);
        }
Example #8
0
        protected virtual IHttpClient CreateClient()
        {
            var settings = new HttpClientSettings
            {
                Logger = new ConsoleLogger()
            };

            return(HttpClient.Create(ApiUrl, settings));
        }
Example #9
0
        internal RequestExecutor(Uri uri)
        {
            var settings = new HttpClientSettings
                {
                    UserAgent = new UserAgent(UserAgentString),
                };

            _client = HttpClient.Create(uri.AbsoluteUri, settings);
        }
Example #10
0
        protected virtual IHttpClient CreateClient()
        {
            var settings = new HttpClientSettings
            {
                Logger = new ConsoleLogger()
            };

            return HttpClient.Create(ApiUrl, settings);
        }
        public override HttpMessageHandler CreateHttpMessageHandler(Uri uri, HttpClientSettings settings)
        {
            if (MacPlatformSettings.UseNSUrlSessionHandler)
            {
                return(CreateNSUrlSessionHandler(uri, settings));
            }

            return(defaultProvider.CreateHttpMessageHandler(uri, settings));
        }
Example #12
0
        protected override IHttpClient CreateClient()
        {
            var settings = new HttpClientSettings();

            settings.Serializers.Clear();
            settings.Serializers.Add(new DotNetXmlSerializer());
            settings.Logger = new ConsoleLogger();

            return(HttpClient.Create("http://localhost:1337/api", settings));
        }
        public void Constructor_Null_Parameters_Returns_HttpClientSettings_Returns_HttpClientSettings_With_Null_Properties()
        {
            //Act
            var httpSettings = new HttpClientSettings(null, null, null, null, null);

            //Assert
            Assert.IsInstanceOfType(httpSettings, typeof(HttpClientSettings));
            Assert.AreEqual(null, httpSettings.BaseUrl);
            Assert.AreEqual(null, httpSettings.ClientId);
            Assert.AreEqual(null, httpSettings.ClientSecret);
            Assert.AreEqual(null, httpSettings.Authority);
            Assert.AreEqual(null, httpSettings.XClientIdHeader);
        }
        private static void ConfigureSecureHttpClientOptions(IServiceProvider provider, HttpClient client)
        {
            HttpClientSettings options = provider.GetService <IConfiguration>()
                                         .GetSection(HttpClientSettings.Section)
                                         .Get <HttpClientSettings>();

            client.BaseAddress = new Uri(options.Url);

            //https://stackoverflow.com/questions/30858890/how-to-use-httpclient-to-post-with-authentication
            var byteArray = new UTF8Encoding().GetBytes($"{options.ClientId}:{options.ClientSecret}");

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
        }
Example #15
0
 public HttpMessageInvoker GetClient(HttpClientSettings clientSetting, params DelegatingHandler[] handlers)
 {
     if (_httpClient == null)
     {
         lock (_syncObject)
         {
             if (_httpClient == null)
             {
                 _httpClient = GetClientInernal(clientSetting, handlers);
             }
         }
     }
     return(_httpClient);
 }
        public void Contructor_Right_Parameters_Returns_HttpClientSettings_With_Right_Properties()
        {
            //Arrange
            //all necessary variables already set

            //Act
            var httpSettings = new HttpClientSettings(_urlBase, _defaultClientId, _defaultClientSecret, _authority, _xClientIdHeader);

            //Assert
            Assert.IsInstanceOfType(httpSettings, typeof(HttpClientSettings));
            Assert.AreEqual(_urlBase, httpSettings.BaseUrl);
            Assert.AreEqual(_defaultClientId, httpSettings.ClientId);
            Assert.AreEqual(_defaultClientSecret, httpSettings.ClientSecret);
            Assert.AreEqual(_authority, httpSettings.Authority);
            Assert.AreEqual(_xClientIdHeader, httpSettings.XClientIdHeader);
        }
Example #17
0
        public ApiFixture()
        {
            host = new WebHostBuilder()
                   .UseKestrel()
                   .UseStartup <Startup>()
                   .UseUrls(ApiUrl)
                   .Build();

            host.Start();

            var settings = new HttpClientSettings();

            settings.Middleware.Append(new ConsoleLoggingMiddleware());

            Client = HttpClient.Create("http://localhost:1337/api", settings);
        }
Example #18
0
        public async void ShouldHaveCustomUserAgent(string userAgent)
        {
            var settings = new HttpClientSettings();

            settings.Middleware.Append(new ConsoleLoggingMiddleware());
            settings.Middleware.Replace(new UserAgentMiddleware(new UserAgent(userAgent)));

            var client = HttpClient.Create("http://localhost:1337/api", settings);

            var response = await client
                           .Get("middleware/echo-user-agent")
                           .OnOk()
                           .AsString();

            Assert.Equal(userAgent, response);
        }
Example #19
0
        public async void ShouldAddCustomHeaders(string name)
        {
            var settings = new HttpClientSettings();

            settings.Middleware.Append(new ConsoleLoggingMiddleware());
            settings.Middleware.Append(new CustomHeadersMiddleware(name));

            var client = HttpClient.Create("http://localhost:1337/api", settings);

            var response = await client
                           .Get("middleware/echo-header", new { headerName = "x-special-name" })
                           .OnOk()
                           .AsString();

            Assert.Contains(name, response);
        }
        private static void AddHttpClients(IServiceCollection services,
                                           HttpClientSettings section, Dictionary <string, Type> handlers, IPolicyRegistry <string> registry)
        {
            if (string.IsNullOrEmpty(section.PriorityType) ||
                section.BaseAddresses == null || section.BaseAddresses.Count == 0 ||
                section.Settings == null || section.Settings.Count == 0)
            {
                return;
            }

            var priorityType = Type.GetType(section.PriorityType);

            if (priorityType == null)
            {
                return;
            }

            foreach (var setting in section.Settings.Where(e => //Enum.TryParse(priorityType, e.Priority, out var priority) &&
                                                           section.BaseAddresses.ContainsKey(e.BaseAddress)))
            {
                // 注册 HTTP 客户
                var builder = services.AddHttpClient(setting.Priority,
                                                     c => { c.BaseAddress = new Uri(section.BaseAddresses[setting.BaseAddress]); });
                // 设置 HTTP 处理程序
                if (setting.DelegatingHandlers?.Count > 0)
                {
                    foreach (var handler in setting.DelegatingHandlers.Where(handlers.ContainsKey))
                    {
                        builder.AddHttpMessageHandler(provider =>
                                                      (DelegatingHandler)provider.GetRequiredService(handlers[handler]));
                    }
                }
                // 设置 HTTP 处理程序生存期
                if (setting.HandlerLifetime.HasValue)
                {
                    builder.SetHandlerLifetime(TimeSpan.FromMinutes(setting.HandlerLifetime.Value));
                }
                // 设置 HTTP 错误处理政策
                if (setting.ErrorPolicies?.Count > 0)
                {
                    foreach (var policy in setting.ErrorPolicies.Where(registry.ContainsKey))
                    {
                        builder.AddPolicyHandlerFromRegistry(policy);
                    }
                }
            }
        }
Example #21
0
        public IbmClasifierService()
        {
            var settings = new HttpClientSettings()
            {
                Handlers = new List <DelegatingHandler>()
                {
                    new BasicAuthorizationHandler(
                        ConfigurationManager.AppSettings["IbmClasifierUsername"],
                        ConfigurationManager.AppSettings["IbmClasifierPassword"]
                        ),
                    new HandingExceptionDelegatingHandler()
                },
                BaseUri = new Uri(ConfigurationManager.AppSettings["IbmClasifierBaseUrl"])
            };

            httpRequester = new HttpRequester(new Core.HttpClientFactory.HttpClientFactory(settings));
        }
        internal static HttpHandlerResourceV3 CreateResource(PackageSource packageSource, ICredentialService credentialService, bool nonInteractive = false)
        {
            var sourceUri = packageSource.SourceUri;
            var settings  = new HttpClientSettings {
                AutomaticDecompression       = DecompressionMethods.GZip | DecompressionMethods.Deflate,
                SourceAuthenticationRequired = false,
                NonInteractive = nonInteractive
            };
            var rootHandler = HttpClientProvider.CreateHttpMessageHandler(sourceUri, settings);

            // HTTP handler pipeline can be injected here, around the client handler
            HttpMessageHandler messageHandler = new MonoDevelopServerWarningLogHandler(rootHandler);

            var innerHandler = messageHandler;

            messageHandler = new StsAuthenticationHandler(packageSource, TokenStore.Instance)
            {
                InnerHandler = messageHandler
            };

            innerHandler = messageHandler;
            var credentialsHandler = GetHttpCredentialsHandler(rootHandler);

            messageHandler = new NuGetHttpSourceAuthenticationHandler(packageSource, credentialsHandler, credentialService)
            {
                InnerHandler = innerHandler
            };

            // Have to pass a dummy HttpClientProvider since it may not be used by a native implementation, such as on the Mac.
            // It looks like the only place this is used in NuGet is with the DownloadResourcePluginProvider in order to pass the
            // HttpClientHandler's Proxy to the GetCredentialsRequestHandler. There is no plugin support yet in MonoDevelop but
            // this may be a problem in the future. Possibly a custom DownloadResourcePluginProvider would be required or possibly
            // a HttpClientProvider created with just its Proxy property set based on the current proxy for that url.
            var clientHandler = GetOrCreateHttpClientHandler(rootHandler);

            // Get the proxy from NuGet's ProxyCache which has support for proxy information define in the NuGet.Config file.
            var proxy = ProxyCache.Instance.GetUserConfiguredProxy();

            if (proxy != null)
            {
                clientHandler.Proxy = proxy;
            }
            var resource = new HttpHandlerResourceV3(clientHandler, messageHandler);

            return(resource);
        }
Example #23
0
        public static void Main(string[] args)
        {
            var settings = new HttpClientSettings
            {
                Authenticator = new BasicAuthenticator("guest", "guest")
            };

            const string root = "http://localhost:55672/api/";

            settings.Configure<JsonDotNetSerializer>(s =>
                s.ConfigureSettings(c =>
                {
                    c.ContractResolver = new RabbitContractResolver();
                }));

            var client = HttpClient.Create(root, settings);

            var options = new
            {
                vhost = "integration",
                name = "ErrorQueue",
                count = "1",
                requeue = "true",
                encoding = "auto",
                truncate = "50000"
            };

            var resource = client.BuildRelativeResource("queues/:vhost/:queue/get", new
            {
                vhost = "integration",
                queue = "ErrorQueue"
            });

            var request = new PostRequest(
                resource, new ObjectRequestBody(options));

            request.AddHeader("Accept", string.Empty);

            var messages = client.Run(request)
                .OnOk()
                .As<List<Message>>();

            Console.WriteLine(messages.Count);

            Console.ReadLine();
        }
        /// <summary>
        /// Http 中间处理程序
        /// </summary>
        /// <param name="services"></param>
        /// <param name="section"></param>
        /// <returns></returns>
        private static Dictionary <string, Type> AddDelegatingHandlers(IServiceCollection services,
                                                                       HttpClientSettings section)
        {
            var handlers = new Dictionary <string, Type>();

            if (section.DelegatingHandlers?.Count > 0)
            {
                foreach (var handler in section.DelegatingHandlers.Where(e => !string.IsNullOrEmpty(e.Value)))
                {
                    var handlerType = Type.GetType(handler.Value);
                    if (handlerType != null && typeof(DelegatingHandler).IsAssignableFrom(handlerType))
                    {
                        services.AddTransient(handlerType);
                        handlers.Add(handler.Key, handlerType);
                    }
                }
            }
            return(handlers);
        }
        /// <summary>
        /// Http 错误处理程序
        /// </summary>
        /// <param name="services"></param>
        /// <param name="section"></param>
        /// <returns></returns>
        private static IPolicyRegistry <string> AddHttpErrorPolicies(IServiceCollection services,
                                                                     HttpClientSettings section)
        {
            var registry = services.AddPolicyRegistry();

            if (section.RetryPolicies?.Count > 0)
            {
                foreach (var policy in section.RetryPolicies.Where(e => e.Value != null))
                {
                    if (!registry.ContainsKey(policy.Key))
                    {
                        //错误重试次数
                        registry.Add(policy.Key, HttpPolicyExtensions.HandleTransientHttpError().RetryAsync(policy.Value.RetryCount));
                    }
                }
            }

            if (section.WaitAndRetryPolicies?.Count > 0)
            {
                foreach (var policy in section.WaitAndRetryPolicies.Where(e => e.Value?.SleepDurations?.Length > 0))
                {
                    if (!registry.ContainsKey(policy.Key))
                    {
                        //重试间隔/毫秒
                        registry.Add(policy.Key, HttpPolicyExtensions.HandleTransientHttpError().WaitAndRetryAsync(policy.Value.SleepDurations.Select(e => TimeSpan.FromMilliseconds(e))));
                    }
                }
            }

            if (section.CircuitBreakerPolicies?.Count > 0)
            {
                foreach (var policy in section.CircuitBreakerPolicies.Where(e => e.Value != null))
                {
                    if (!registry.ContainsKey(policy.Key))
                    {
                        //断路时间/毫秒
                        registry.Add(policy.Key, HttpPolicyExtensions.HandleTransientHttpError().CircuitBreakerAsync(policy.Value.HandledEventsAllowedBeforeBreaking, TimeSpan.FromMilliseconds(policy.Value.DurationOfBreak)));
                    }
                }
            }

            return(registry);
        }
        HttpMessageHandler CreateNSUrlSessionHandler(Uri uri, HttpClientSettings settings)
        {
            var config = NSUrlSessionConfiguration.DefaultSessionConfiguration;

            config.RequestCachePolicy = NSUrlRequestCachePolicy.ReloadIgnoringLocalCacheData;
            config.URLCache           = null;

            var sessionHandler = new NSUrlSessionCredentialsHandler(config)
            {
                DisableCaching    = true,
                AllowAutoRedirect = settings.AllowAutoRedirect,
            };

            if (!settings.SourceAuthenticationRequired)
            {
                return(sessionHandler);
            }

            return(new HttpSourceAuthenticationHandler(uri, sessionHandler, sessionHandler));
        }
Example #27
0
        private IHttpClient BuildClient()
        {
            var settings = new HttpClientSettings
            {
                Authenticator = new BasicAuthenticator("guest", "guest")
            };

            settings.Configure <DefaultJsonSerializer>(s =>
            {
                s.JsonSerializerStrategy = new RabbitJsonSerializerStrategy();
            });

            var rootWithReplacements = root.FormatWithReplacements();

            var client = HttpClient.Create(rootWithReplacements, settings);

            // add an accept header to all requests otherwise the api will complain
            client.BeforeRequest += (sender, args) =>
                                    args.Request.AddHeader("Accept", string.Empty);

            return(client);
        }
Example #28
0
        private IHttpClient BuildClient()
        {
            var settings = new HttpClientSettings
            {
                Authenticator = new BasicAuthenticator("guest", "guest")
            };

            settings.Configure<DefaultJsonSerializer>(s =>
            {
                s.JsonSerializerStrategy = new RabbitJsonSerializerStrategy();
            });

            var rootWithReplacements = root.FormatWithReplacements();

            var client = HttpClient.Create(rootWithReplacements, settings);

            // add an accept header to all requests otherwise the api will complain
            client.BeforeRequest += (sender, args) =>
                args.Request.AddHeader("Accept", string.Empty);

            return client;
        }
Example #29
0
        public static void Main(string[] args)
        {
            var settings = new HttpClientSettings
            {
                Authenticator = new BasicAuthenticator("username", "password"),
                UserAgent = new UserAgent("SpeakEasy (username)")
            };

            var client = HttpClient.Create("https://basecamp.com/1816438/api/v1/", settings);

            var projects = client.Get("projects.json").OnOk().As<List<Project>>();

            foreach (var project in projects)
            {
                Console.WriteLine(project.Name);
            }

            var person = client.Get("people/me.json").OnOk().As<Person>();
            Console.WriteLine(person.Name);
            Console.WriteLine(person.EmailAddress);

            Console.ReadLine();
        }
Example #30
0
        public static void Main(string[] args)
        {
            var settings = new HttpClientSettings
            {
                Authenticator = new BasicAuthenticator("username", "password"),
                UserAgent     = new UserAgent("SpeakEasy (username)")
            };

            var client = HttpClient.Create("https://basecamp.com/1816438/api/v1/", settings);

            var projects = client.Get("projects.json").OnOk().As <List <Project> >();

            foreach (var project in projects)
            {
                Console.WriteLine(project.Name);
            }

            var person = client.Get("people/me.json").OnOk().As <Person>();

            Console.WriteLine(person.Name);
            Console.WriteLine(person.EmailAddress);

            Console.ReadLine();
        }
 public HttpRequestMessageBuilder(HttpMethod httpMethod, UriBuilder uriBuilder, HttpClientSettings httpSettings)
 {
     this.HttpMethod             = httpMethod;
     this.UriBuilder             = uriBuilder;
     this.JsonSetting            = httpSettings.JsonSerializerSettings;
     this.DefaultStringFormatter = new StringFormatAttribute(httpSettings.DateTimeFormat);
     this.Headers      = new HttpNameValueCollection();
     this.Cookies      = new List <CookieHeaderValue>();
     this.PathParams   = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
     this.QueryStrings = new HttpNameValueCollection();
     this.FormBodys    = new HttpNameValueCollection();
     //this.StreamBodys = new List<Tuple<string, Stream>>();
     //this.Files = new List<KeyValuePair<string, FileInfo>>();
     this.RawContents = new List <HttpContent>();
 }
        //public List<KeyValuePair<string, FileInfo>> Files { get; set; }

        public HttpRequestMessageBuilder(HttpMethod httpMethod, UriBuilder uriBuilder, HttpClientSettings httpSettings, bool keepOrginalQueryString)
            : this(httpMethod, uriBuilder, httpSettings)
        {
            if (!string.IsNullOrWhiteSpace(uriBuilder.Query))
            {
                var parsedQueryString = HttpUtility.ParseQueryString(uriBuilder.Query, Utf8Encoding);
                foreach (var k in parsedQueryString.Keys)
                {
                    this.QueryStrings.Add(k.ToString(), parsedQueryString.GetValues(k.ToString()));
                }
            }
        }
 public CodeGenerationService(IOptions <HttpClientSettings> options)
 {
     _options = options.Value;
 }
        public static Task <IHttpResult> ToHttpResult(this Task <HttpResponseMessage> responseMessageTask, Type returnObjectType, HttpClientSettings httpClientSettings)
        {
            var actionContext = new EmptyActionContext();

            actionContext.HttpClientSettings = httpClientSettings;
            actionContext.ReturnTypeDescription.ReturnType       = typeof(IHttpResult);
            actionContext.ReturnTypeDescription.TargetObjectType = returnObjectType;

            return(responseMessageTask.Then(responseMessage => ToHttpResult(responseMessage, returnObjectType, actionContext)));
        }
Example #35
0
        public static Task <IHttpResult> ParseAsHttpResult(this Task <HttpResponseMessage> responseMessageTask, Type returnObjectType, HttpClientSettings httpClientSettings)
        {
            return(responseMessageTask.Then(async responseMessage =>
            {
                IHttpResult httpResult = (IHttpResult)Activator.CreateInstance(typeof(HttpResult <>).MakeGenericType(returnObjectType), httpClientSettings.JsonSerializerSettings);

                httpResult.Headers = responseMessage.Headers;
                httpResult.IsSuccessStatusCode = responseMessage.IsSuccessStatusCode;
                httpResult.ReasonPhrase = responseMessage.ReasonPhrase;
                httpResult.StatusCode = responseMessage.StatusCode;
                httpResult.Version = responseMessage.Version;

                if (responseMessage.Content != null)
                {
                    httpResult.ContentHeaders = responseMessage.Content.Headers;
                }

                if (responseMessage.IsSuccessStatusCode)
                {
                    if (returnObjectType.IsBulitInType())
                    {
                        httpResult.Content = ObjectExtensions.ChangeType(await responseMessage.Content.ReadAsStringAsync(), returnObjectType);
                        responseMessage.Dispose();
                    }
                    else if (typeof(Stream).IsAssignableFrom(returnObjectType))
                    {
                        httpResult.Content = await responseMessage.Content.ReadAsStreamAsync();
                    }
                    else if (typeof(byte[]) == returnObjectType)
                    {
                        httpResult.Content = await responseMessage.Content.ReadAsByteArrayAsync();
                        responseMessage.Dispose();
                    }
                    else
                    {
                        httpResult.Content = await responseMessage.Content.ReadAsAsync(returnObjectType, new[] { httpClientSettings.JsonMediaTypeFormatter });
                        responseMessage.Dispose();
                    }
                }
                else
                {
                    httpResult.ErrorMessage = await responseMessage.Content.ReadAsStringAsync();
                    responseMessage.Dispose();
                }
                return httpResult;
            }));
        }
 /// <summary>
 /// Get the permissions a user has to a resource. Get a summary of the permissions a user has to a particular resource.
 /// </summary>
 public AuthressClient(ITokenProvider tokenProvider, HttpClientSettings settings, IHttpClientHandlerFactory customHttpClientHandlerFactory = null)
 {
     authressHttpClientProvider = new HttpClientProvider(settings, tokenProvider, customHttpClientHandlerFactory);
 }
 public static IPushClient CreateApiClient(HttpClientSettings settings)
 {
     return(new PushClient(new HttpEventPusher <EffectiveAuthorizationEvent>(settings, new PingFederateAuthenticationProvider(settings.Authority.AbsoluteUri, settings.ClientId, settings.ClientSecret, settings.XClientIdHeader))));
 }