WebAPI 백엔드 (여러 응용 프로그램에서 사용되는)에 대한 매우 간단한 REST 쿼리가 있으며 Android 및 Windows에서는 제대로 작동하지만 iOS에서는 "Object reference not 개체의 인스턴스로 설정 "오류가 발생했습니다. 아래 코드에서 moHttpClient와 loUri가 모두 인스턴스화됩니다. 나는 Device.BeginInvokeOnMainThread에서 GetEmployeeRecord에 대한 호출을 래핑하려고했지만 그 역시 도움이되지 않습니다. Visual Studio와 Mac에서 Xamarin의 최신 안정 버전으로 업그레이드했습니다. iOS가 아닌 다른 OS에서 작동하는 이유는 무엇입니까?Xamarin Forms HttpClient iOS에서만 GetAsync가 실패 함
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 란 무엇입니까? 또한 귀하는 귀하의 웹 사이트에 celf-certs를 가지고 있는데, 그것은 역시 문제가 될 수 있습니다. 우리가 테스트하기를 원하는 경우 정확한 URI –
을 제공하십시오. 그건 내 웹 사이트가 아니므로, 보안상의 이유로 실제 주소를 숨기려고합니다. URI에는 아무런 문제가 없으며 Android와 Windows에서 작동합니다. 네트워크/인터넷 액세스를 허용하기 위해 iOS 프로젝트에서 어떻게 든 설정해야한다고 생각합니다. 코드는 PCL에 있습니다. –
그런 다음 예외에 중단 점을두고 어떤 객체가 null인지 확인하십시오. 나는 그것을 실행할 수없고 무엇이 null인지 알 수 없으면 더 많은 것을 도울 수 없다 –