0

httpからhttpsへの私の完全なRestサービスを渡そうとしています。AndroidとIOSのXamarin PCL自己署名証明書

私は自己署名入りの証明書を作成しました。私はIIS Expressに持っていました。私はGoogle Chromeでそれを検証し、それは郵便配達員と完全に正常に動作します。私の休憩サービスはhttpとhttpsで動作します。

私はPCLプロジェクト(IOSとAndroid)を使用していますが、http要求ですべて正常に動作していますが、https要求で例外があります。例外メッセージはnullです。

Visual Studio 2015から直接テスト証明書を作成しようとしましたが、プロパティ - >署名でボタンが無効になっています。

また、自己署名証明書を信頼されたルートとしてインストールしようとしましたが、シミュレータとrest serviceの間の通信に成功しませんでした。私はHTTPSと自己署名証明書を使用して、私のAndroidとiOSシミュレータと通信するにはどうすればよい

私のコード

public partial class MainPage : ContentPage 
{ 
    private string url = string.Empty; 
    private HttpClient _client; 


    public MainPage() 
    { 
     InitializeComponent(); 
     switch (Device.RuntimePlatform) 
     { 
      case Device.iOS: 
       _client = new HttpClient(new NSUrlSessionHandler()); 
       break; 
      case Device.Android: 
       _client = new HttpClient(); 
       break; 
     } 
     _client = new HttpClient(); 
     test(); 


    } 

    private async void test() 
    { 
     //url = "http://192.168.1.106:9630/PrototypeB.svc/Test"; 
     url = "https://192.168.1.106:44301/PrototypeB.svc/Test"; 
     try 
     { 
      var _content = await _client.GetStringAsync(url); 
      List<Test> _posts = JsonConvert.DeserializeObject<List<Test>>(_content); 
     } 
     catch (HttpRequestException e) 
     { 
      string test = e.Message; 
     } 
     catch (Exception e) 
     { 
      string test = e.Message; 
     } 
    } 
} 

+0

https://stackoverflow.com/questions/45856383/how-can-i-add-a-ssl-certificate-on-my-apk/45875458#45875458 –

答えて

-2

ServicePointManagerを使用すると、証明書の検証チェックを無視できます。

このようなあなたのiOSとAndroidプラットフォームでコードを実行します。

System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) => { 
         return true; 
        }; 

参考文献:

また、ModernHttpClient Proもこの機能を提供しますが、無料ではありません。

関連する問題