我目前正在学习如何开发跨平台应用
我遇到了一个错误,我不知道它是不是错误
但是当我尝试使用函数GetStringAsync
时,如下图所示
它引起了任何人都可以帮忙的错误吗?
这是代码
protected override async void OnAppearing()
{
var client = new HttpClient();
string a =await client.GetStringAsync("https://jsonplaceholder.typicode.com/posts");
base.OnAppearing();
}
我通过Nuget Microsoft.Net.Http添加的PCL项目
对于Android项目,我添加了System.Net.Http
我只是意识到,如果你想下载Microsoft.Net.Http 在您的Android项目中,您需要下载Microsoft.bcl.Build 首先,我做了那个BTW,但问题仍然存在。
答案 0 :(得分:1)
async void
。但是OnAppearing
不是事件处理程序。它是页面基类的虚方法。但好的是OnAppearing
方法实际上是在Appearing
事件之前调用的。
所以订阅OnAppearing方法中页面/视图的Appearing
事件。
protected override void OnAppearing() {
this.Appearing += Page_Appearing;
}
并在实际的偶数处理程序上调用异步代码,该处理程序在之后调用。
HttpClient client = new HttpClient();
private async void Page_Appearing(object sender, EventArgs e) {
//...call async code here
var url = "https://jsonplaceholder.typicode.com/posts";
var a = await client.GetStringAsync(url);
//unsubscribing from the event
this.Appearing -= Page_Appearing;
}