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 の動作は同じです。