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 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); }
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; }
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); } }