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中。 –
然後在你的異常上放置斷點並檢查什麼對象爲空。如果我不能運行它,看看什麼是空的,我不能幫助更多 –