iOS应用程序后台运行时,HttpClient Web服务请求被取消

时间:2019-06-15 22:15:54

标签: c# ios xamarin xamarin.forms httpclient

如果我提出一个Web服务请求,并在iOS应用程序中后台运行并再次使其前台运行,则会收到一个异常,表明该请求已被取消。这是错误还是iOS的操作方式?我找不到与此有关的任何文档。使用Xamarin Forms实现可靠的Web服务机制的正确方法是什么?我按照here中记录的HttpClient示例进行操作。

1 个答案:

答案 0 :(得分:0)

这在前景和背景中都对我有效。 也许您还需要在info.plist中启用背景模式

private async Task<string> UsaHttpClient()
 do
 {
  ...
  ...
  ...
  await Task.Run(async () =>
     {
     HttpClient Client = new HttpClient();
     Client.BaseAddress = new Uri("https://services.xxxxx.com/ServiceApi/");
     var response = Client.GetStringAsync("api/function?Parametro...").Result;
     HttpResponseMessage resp = new HttpResponseMessage();
     resp.Content = new StringContent(response, Encoding.UTF8, "application/json");
     r = response;
     resp.Dispose();
     Client.Dispose();
     await Task.Delay(second for delay);
     });
 } while (X == anyCondition);
}