0
我对我们的WebAPI后端(由许多应用程序使用)有一个非常简单的REST查询,它在Android和Windows下工作正常,但在iOS中,它失败并显示“Object reference not设置为一个对象的实例“错误。在下面的代码中,moHttpClient和loUri都被实例化了。我试过在Device.BeginInvokeOnMainThread中打包调用GetEmployeeRecord,但这也没有帮助。我已经在Visual Studio和Mac上升级到Xamarin的最新稳定版本。为什么它在其他操作系统中工作,但不是iOS?Xamarin表单HttpClient GetAsync在iOS中失败
private async void btnTest_Clicked(object sender, EventArgs e)
{
await GetEmployeeRecord();
}
private async Task GetEmployeeRecord()
{
try
{
var loUri = new Uri("https://my.website.com/mobile.webapp/api/employees?key=6c6f2c06-a444-4e54-bd77-b5f594c29910");
var loResponse = await moHttpClient.GetAsync(loUri);
if (loResponse.IsSuccessStatusCode)
{
var lcJson = await loResponse.Content.ReadAsStringAsync();
await DisplayAlert("Employee", lcJson, "OK");
}
}
catch (Exception ex)
{
Device.BeginInvokeOnMainThread(() =>
{
DisplayAlert("Get Employee Record", ex.Message, "OK");
});
}
}
在GetAsync行使用断点,moHttpClient和loUri都被实例化。但是,在GetAsync上进行鼠标移动会提示GetAsync是未知成员。怎么可能?
我刚刚检查,似乎这个未知的成员与Android也发生。但是使用Android它实际上执行。
我在您提供的URI上获得404。什么是moHttpClient?你的网站也有自己的证书,这也可能是问题。如果你想要我们测试,请提供正确的URI –
这不是我的网站,我只是为了掩盖实际地址,出于安全原因。 URI没有问题,它适用于Android和Windows。我怀疑我需要以某种方式在iOS项目中设置一些东西来允许网络/互联网访问。代码在PCL中。 –
然后在你的异常上放置断点并检查什么对象为空。如果我不能运行它,看看什么是空的,我不能帮助更多 –