MAUIでiOSアプリの開発!

MAUIを使ったiOSアプリの開発についての技術的なメモです。

WebAPIを使うiOSアプリで通信のテストをする場合(その2)

以前Mac上のiOSシミュレータのアプリからWebAPI(https/自己証明書)通信を行うと例外が発生するので、httpでアクセスする方法について記載しましたが、回避する方法がありました。

iOS シミュレーターと Android エミュレーターからローカル Web サービスに接続する - Xamarin | Microsoft Docs

こちらに証明書のチェックをバイパスする方法があり、試したところ、ASP.NETのWebAPIテストサーバと疎通が行えました。

 

HttpClientを使用しているクラスに

public HttpClientHandler GetInsecureHandler()
{
HttpClientHandler handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) =>
{
if (cert.Issuer.Equals("CN=localhost"))
return true;
return errors == System.Net.Security.SslPolicyErrors.None;
};
return handler;
}

を追加し、HttpClientをnewしている箇所を

#if DEBUG
HttpClientHandler insecureHandler = GetInsecureHandler();
HttpClient client = new HttpClient(insecureHandler);
#else
HttpClient client = new HttpClient();
#endif

のように変更しました。