Xamarin-web服务调用在模拟器上工作,而不是在iPhone上

Xamarin-web服务调用在模拟器上工作,而不是在iPhone上,xamarin,xamarin.ios,xamarin.android,xamarin.forms,monodevelop,Xamarin,Xamarin.ios,Xamarin.android,Xamarin.forms,Monodevelop,我从来没有遇到过这种情况,我有一个web服务调用,它在iOS模拟器上运行得很好,但是当我尝试在我的iPhone(7plus-10.3.1)上调试它时,应用程序崩溃了,我得到了一个非常奇怪的错误。这是导致崩溃的调用(我试图将其格式化为代码,但根本不起作用): return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken); var httpClient=新的httpClient();

我从来没有遇到过这种情况,我有一个web服务调用,它在iOS模拟器上运行得很好,但是当我尝试在我的iPhone(7plus-10.3.1)上调试它时,应用程序崩溃了,我得到了一个非常奇怪的错误。这是导致崩溃的调用(我试图将其格式化为代码,但根本不起作用):

return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken);
var httpClient=新的httpClient();


return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken);
httpClient.DefaultRequestHeaders.Add(“接受”、“应用程序/json”);
 


return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken);
var responseMessage=await httpClient.PostAsync(路径、内容、取消令牌);


return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken);
//崩溃发生在下一行


return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken);
返回等待响应消息.Content.ReadAsAsync(cancellationToken);
以下是错误:

return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken);
System.ExecutionEngineeException:尝试在仅使用--aot运行时JIT编译方法“System.Net.Http.HttpContentExtensions:ReadAsAsync(System.Net.Http.HttpContent,System.Type,System.Collections.Generic.IEnumerable`1,System.Net.Http.Formatting.IFormatterLogger,System.Threading.CancellationToken)”。有关更多信息,请参阅

return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken);

我似乎没有做任何限制链接描述的事情,而且它在iOS模拟器和Android模拟器以及我的Android设备上都工作得很好。你知道怎么做吗?如果需要,我可以发布更多的代码。

执行一个
ReadAsStringAsync
,然后将其反序列化为您的
TokenResponse
classI我肯定记得我在某个地方读到过,将取消令牌传递给HttpClient会导致问题,尽管我一生都找不到它。尝试取出取消令牌,看看会发生什么。因此,正如SushiHanover所建议的那样,我可以使用ReadAsStringAsync使其在iOS中工作。然而,现在Android只是抛出了“方法不允许”。是因为我不再传递取消令牌了吗?我不知道如何通过使用ReadAsStringAsync进行的取消。
return await responseMessage.Content.ReadAsAsync<TokenResponse>(cancellationToken);