我正在开发一个发出 HTTP 请求的跨平台库。它在 Android 上运行良好,但是当我尝试在 iOS 上使用它时出现异常,我不知道如何修复它。
这是我的代码:
// method from cross platform library
Task.Factory.StartNew(delegate
{
try
{
var client = new HttpClient();
// some other setup stuff
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.post, "http://myurl.com...");
var task = client.SendAsync(request);
task.Wait(); // Exception thrown on this line
var response = task.Result;
var responseString = response.Content.ReadAsStringAsync().Result;
}
catch (Exception e)
{
}
}
在task.Wait();
我得到一个System.AggregateException
内部例外的情况下System.InvalidOperationException
说Operation is invalid due to the current state of the object.
试图找到一些解决方案,我发现问题可能是通过在 UI 线程上调用它引起的。但这就是将这一切都包含在Task.Factory.StartNew
.
我已经尝试了所有我知道要做的事情,但还没有解决这个问题。任何帮助将不胜感激。
编辑:
我决定在 iPhone 模拟器上尝试我的解决方案。这是一个运行 iOS 10 的 iPhone 6 模拟器。我的物理设备是一样的。它适用于模拟器,但由于某种原因不适用于物理设备......非常奇怪。
编辑2:
感谢@YuriS 找到解决方案。
您可以做的是:1)转到ios项目的参考资料2)编辑参考资料3)检查'System.Net.Http'
android 的行为是相同的。