仅针对iOS真实设备的Xamain.Forms中的api调用的任务取消例外

时间:2018-09-07 07:24:44

标签: xamarin.forms xamarin.ios

我正在做一个调用网络API的应用程序。我在iPad / iPhone上调用api时遇到任务取消异常。但是响应在模拟器和android设备上都很好。任何人都可以帮助我解决问题。我不能在哪里出错了。 / p>

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试使用本机Http处理程序以查看其改进。

声明一个接口。

  public interface IHttpHandler
    {
        HttpClient ReturnHandler();
    }

Implement it this way.
public class HttpHandler : IHttpHandler
    {
        public HttpClient ReturnHandler()
        {
            try
            {
                var client = new HttpClient(new NSUrlSessionHandler()
                {
                });
                client.Timeout = TimeSpan.FromSeconds(120);
                return client;
            }
            catch (TaskCanceledException ex)
            {
                Console.WriteLine("TaskCanceledException ReturnHandler-->" + ex.Message);
                if (ex.InnerException != null)
                {
                    Console.WriteLine("TaskCanceledException ReturnHandler-->" + ex.InnerException.Message);
                }
                return null;
            }
            catch (Exception ex)
            {
                Console.WriteLine("ReturnHandler Exception-->" + ex.Message);
                if (ex.InnerException != null)
                {
                    Console.WriteLine("ReturnHandler Exception-->" + ex.InnerException.Message);
                }
                return null;
            }
        }
    }

使用Xamarin形式的内置Dependency注入来利用我为您提供的具有本地处理程序的HTTPClient的接口。

如果您不知道如何阅读Here