コード例 #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
            };
        }
コード例 #2
0
        public async void SendTest()
        {
            var factory        = new EasyHttpClientFactory();
            var baiduApiClient = factory.Create <IBaiduApiClient>("https://m.baidu.com/");
            var response       = await baiduApiClient.SearchSugguestion("Are You OK");

            Assert.Equal(200, (int)response.StatusCode);
        }
コード例 #3
0
        public PixivOAuthHandler(string loginHost, string oAuth2TokenPath, PixivOAuthRequest request, IAuthStore authStore, IHttpClientProvider httpClientProvider)
        {
            var factory = new EasyHttpClientFactory();

            factory.Config.HttpClientProvider = httpClientProvider;

            this._request         = request;
            this._oAuth2TokenPath = oAuth2TokenPath.Trim('/');
            this._oAuth2Api       = factory.Create <IOAuth2Api>(loginHost);
            this._authStore       = authStore;
        }
コード例 #4
0
        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);
            }
        }