public PixivApiClientFactory(string username, string password, bool enableDirectConnect, Action <EasyClientConfig> configure) : base() { var config = new EasyClientConfig(); var httpClientProvider = new PixivHttpClientProvier(enableDirectConnect); config.Host = new Uri("https://app-api.pixiv.net"); config.HttpClientProvider = httpClientProvider; config.HttpClientSettings.Timeout = TimeSpan.FromSeconds(120); config.HttpClientSettings.ActionFilters.Add(new ResultActionFilterAttribute()); config.HttpClientSettings.OAuth2ClientHandler = new PixivOAuthHandler( "https://oauth.secure.pixiv.net/", new PixivOAuthRequest { ClientId = "MOBrBDS8blbauoSck0ZfDbtuzpyT", ClientSecret = "lsACyCD94FhDUtGTXi3QzcFE2uU1hqtDaKeqrdwj", GrantType = "password", GetSecureUrl = "1", Username = username, Password = password, }, new JsonFileAuthStore(), httpClientProvider ); configure?.Invoke(config); _innerFactory = new EasyHttpClientFactory { Config = config }; }
public static void RegisterEasyClient(this ContainerBuilder builder, Type[] clientTypes, Action <EasyClientConfig> configure = null) { var config = new EasyClientConfig(); configure?.Invoke(config); var factory = new EasyHttpClientFactory(); factory.Config = config; clientTypes = clientTypes.Where(x => x.IsInterface).ToArray(); foreach (var t in clientTypes) { builder.Register(c => { return(_createMethod.MakeGenericMethod(t).Invoke(factory, null));; }).As(t); } }
public ProxyMethodExecutor(EasyClientConfig config) { _config = config; _httpClient = _config.HttpClientProvider.GetClient(config.HttpClientSettings, config.HttpClientSettings.DelegatingHandlers.Select(x => x.Invoke()).ToArray()); }