예제 #1
0
        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);
            }
        }
예제 #3
0
 public ProxyMethodExecutor(EasyClientConfig config)
 {
     _config     = config;
     _httpClient = _config.HttpClientProvider.GetClient(config.HttpClientSettings, config.HttpClientSettings.DelegatingHandlers.Select(x => x.Invoke()).ToArray());
 }