Xamarin表单中没有WebClient类

jwk*_*knz 3 c# namespaces web xamarin xamarin.forms

WebClient在Xamarin.Forms中学习C#类

该类的文档在这里:

我已经System.Net按照要求导入了名称空间,但是它作为一个不必要的名称空间出现。
System.Net.WebClient命名空间是不可用。

我有什么想念的吗?-应该在智能感知上上课吗?

Che*_*ron 6

当您在“ Xamarin.Forms”中说时,这是什么项目类型?PCL,Android应用程序,iOS应用程序?还有吗

让我们假设这是可移植类库(PCL)。在这种情况下,答案是“否”。

PCL仅提供.NET Framework的子集,在这种情况下,它包含WebClient。您应该使用什么呢?HttpClient呢?

使用HttpClient的两个令人信服的理由是:

  1. Xamarin为Android和iOS提供了HttpClientHandlers,它们利用平台特定的HTTP API(例如iOS上的NSUrlConnection)。

  2. HttpClient是一个完全异步的 API,太棒了!提取内容时,我们不想阻塞UI。

  3. 超级好用

为您准备的小样本:

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;
}
Run Code Online (Sandbox Code Playgroud)

在HttpClient之上,您可以获得各种好处,例如Refit和Fusilade。然后,您可以将Polly用于断路器或重试。

结论:使用HttpClient是现代的.NET API,与WebClient相对,WebClient是古老的并且从1.1开始就在.NET中使用