我是Xamarin的新手,我正在尝试创建一个跨平台应用,用户可以使用JSON API调用进行登录。然后在成功登录尝试时返回令牌,我可以在其他API中使用该令牌来显示用户数据。
当我在控制台应用程序中使用相同的代码时,它可以工作,但是当我在Xamarin中运行它时,await client.GetAsync(url)
之后的代码永远不会到达,一段时间后应用程序中断,我得到一个未知错误。我遇到了僵局吗?
private async void loginButton_Click(object sender, EventArgs e)
{
var login = await loginAPI(LoginPage.nameEntry.Text, LoginPage.passEntry.Text);
if (login.state == "success")
{
...
}
else
{
...
}
}
public static async Task<LoginData> loginAPI(String username, String password)
{
try
{
using (var client = new HttpClient())
{
var loginUrl = new Uri("https://my-api/login?username=" + username + "&password=" + password);
var result = await client.GetAsync(loginUrl);
return JsonConvert.DeserializeObject<LoginData>(await result.Content.ReadAsStringAsync());
}
}
catch (Exception e)
{
return null;
}
}
public class LoginData
{
[JsonProperty("state")]
public String state { get; set; }
[JsonProperty("token")]
public String token { get; set; }
}