前提
この記事は以下の前提がありまーす。
環境
- OS X El Capitan 10.11.5
- Xamarin Studio Version 6.0 (build 5174)
- Xamarin.iOS Version: 9.8.0.323 (Xamarin Business)
備考
とりあえず今現在(2016/06/15)の最新バージョン
問題
この問題はHttps通信の場合 PostやらPutやらで100kぐらいのbodyがあるとエラーが発生します。
(Http通信も含むかどうかは知らないです。。。)
sampleCilent.cs
var client = new HttpClient ();
var bodyContent = new ByteArrayContent (new byte [100 * 1024]);
var response = await client.PostAsync ("https://hoge/post", bodyContent);
エラーメッセージは Unknown Secure Transport error 'ClosedGraceful'.
でした。
解決法
Bugzilla
の引用で解決
iOSプロジェクトのオプションから iOS build -> SSL/TLS Implementation の設定を
Mono(TLS v1.0)に変更する
一応 シミュレーターの設定とデバイスの設定で分けてる場合は両方必要。
これから
一応Bugzillaであがっているので今後解決されるのかな?
しかし 投稿の日付がリリース前ということはalpha betaの時からあるわけでそれを解決しないままリリースって…
もしくはこれ以外にbodyにセットする方法があるのかな。。。
終わり。