jwk*_*knz 3 c# namespaces web xamarin xamarin.forms
我WebClient
在Xamarin.Forms中学习C#类
该类的文档在这里:
我已经System.Net
按照要求导入了名称空间,但是它作为一个不必要的名称空间出现。
该System.Net.WebClient
命名空间是不可用。
我有什么想念的吗?-应该在智能感知上上课吗?
当您在“ Xamarin.Forms”中说时,这是什么项目类型?PCL,Android应用程序,iOS应用程序?还有吗
让我们假设这是可移植类库(PCL)。在这种情况下,答案是“否”。
PCL仅提供.NET Framework的子集,在这种情况下,它不包含WebClient。您应该使用什么呢?HttpClient呢?
使用HttpClient的两个令人信服的理由是:
Xamarin为Android和iOS提供了HttpClientHandlers,它们利用平台特定的HTTP API(例如iOS上的NSUrlConnection)。
HttpClient是一个完全异步的 API,太棒了!提取内容时,我们不想阻塞UI。
超级好用
为您准备的小样本:
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中使用