我在 Xamarin.Forms 中的 C# WebClient
类之后
类的文档在这里:
我已经按照要求导入了 System.Net
命名空间,但它是一个不必要的命名空间。
System.Net.WebClient
命名空间不可用。
有什么我想念的吗? - 该类(class)应该出现在智能感知中,对吧?
最佳答案
当您在“Xamarin.Forms”中说时,这是什么项目类型? PCL、Android 应用程序、iOS 应用程序?还有别的吗?
让我们假设这是一个可移植类库 (PCL)。在这种情况下,答案是否定的。
PCL 仅提供 .NET Framework 的一个子集,在本例中它不包含 WebClient。你应该用什么代替? HttpClient 呢?
使用 HttpClient 的几个令人信服的理由是:
Xamarin 为 Android 和 iOS 提供 HttpClientHandlers,它们利用平台特定的 HTTP API,例如 iOS 上的 NSUrlConnection。
HttpClient 是一个完全异步 API,非常棒!我们不想在获取内容时阻塞 UI。
super 好用
给你的小样本:
static HttpClient _client = new HttpClient(); // you should reuse a HttpClient!
private async Task<string> FetchStuffAsync()
{
using (var response = await _client.GetAsync("http://google.com"))
{
if (response.IsSuccessStatusCode)
{
// Horray it went well!
var page = await response.Content.GetStringAsync();
return page;
}
}
return null;
}
在 HttpClient 之上,您可以获得各种好处,例如 Refit 和 Fusilade。然后你可以使用 Polly 进行断路器或重试。
结论: 使用 HttpClient,这是一个现代的 .NET API,与 WebClient 相反,WebClient 是古老的,自 1.1 以来一直在 .NET 中
关于c# - Xamarin Forms 中没有 WebClient 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42122156/