【发布时间】:2020-07-29 13:17:20
【问题描述】:
我每次提出请求时都会创建一个新的HttpClient,但在互联网上搜索后发现这不是最好的使用方式。
我应该使用HttpClientFactory,但我查找的每个网站都使用ServiceCollection() 或IServiceCollection() 之类的:
var services = new ServiceCollection();
services.AddHttpClient()
var serviceProvider = services.BuildServiceProvider();
或
public void ConfigureServices(.IserviceCollection services)
{
services.addHttpClient(name, lambda expr);
}
当我尝试创建新的ServiceCollection 时,Visual Studio 要求我创建一个类,那么如何在 Xamarin 中实现HttpClientFactory?
编辑:我使用这个link 进行实验,但我不知道如何将其合并到我的项目中:我有这样的东西:
class Database
{
private static HttpClient client = new HttpClient();
async public static Task<string> Some Request() {
try {
...
var response = await client.PostAsync(requestUrl, content);
if (response.StatusCode == HttpStatusCode.OK)
{
return await response.Content.ReadAsStringAsync();
}
return ..
}
catch(...) {...}
}
}
public static class Startup
{
public static IServiceProvider ServiceProvider { get; set; }
public static void Init()
{
//same thing as link without stream
}
static void ConfigureServices(HostBuilderContext ctx, IServiceCollection services)
{
services.AddHttpClient();
}
【问题讨论】:
-
如果你用Prism试试这个方法:stackoverflow.com/questions/63803919/…
标签: c# xamarin httpclient httpclientfactory