using System; using System.Collections.Generic; using System.Net.Http; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; using Volo.Abp.Http.Client.Proxying; using Volo.Abp.Http.DynamicProxying; using Volo.Abp.Http.Localization; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; using Volo.Abp.TestApp; using Volo.Abp.TestApp.Application.Dto; using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.Http; [DependsOn( typeof(AbpHttpClientModule), typeof(AbpAspNetCoreMvcTestModule) )] public class AbpHttpClientTestModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddHttpClientProxies(typeof(TestAppModule).Assembly); context.Services.AddHttpClientProxy(); Configure(options => { options.RemoteServices.Default = new RemoteServiceConfiguration("/"); }); Configure(options => { options.FileSets.AddEmbedded(); }); Configure(options => { options.Resources .Add("en") .AddVirtualJson("/Volo/Abp/Http/Localization"); }); Configure(options => { options.MapCodeNamespace("Volo.Abp.Http.DynamicProxying", typeof(HttpClientTestResource)); }); Configure(options => { options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(CreateFileInput)); options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(CreateMultipleFileInput)); }); Configure(options => { options.QueryStringConverts.Add(typeof(List), typeof(TestObjectToQueryString)); options.FormDataConverts.Add(typeof(List), typeof(TestObjectToFormData)); options.PathConverts.Add(typeof(int), typeof(TestObjectToPath)); }); Configure(options => { options.AddPreSendAction("Default", (_, requestContext, httpclient) => { if (requestContext.Action.Name.Equals("TimeOutRequestAsync")) { httpclient.Timeout = TimeSpan.FromMilliseconds(1); } }); }); } }