「みんなのお仕事相談所」では、ユーザーさまのご依頼の相場や製作期間、
契約書やお金に関する悩みを気軽に相談できるQ&Aコミュニティです。
違反案件についてはよくある質問の「【共通】違反のお仕事とは」をご覧ください。
また、違反報告についてはよくある質問の「【共通】違反報告とは」をご確認ください。
Backendとの通信をする際に Bad State Insecure HTTP is not allowed by platformというエラーが発生しました。
次にhttpsに変更し通信をしようと試みた際に HandshakeException: Connection terminated during handshakeというエラーが発生しました。
考えられる解決方法は以下の2点だと考えております。
Flutterでの設定ファイル等でHTTP通信を可能にする事ができますでしょうか?
fastAPIでSSL通信ができるようにする?
技術仕様
Frontend:Flutter
Backend:FastAPI
Mac OS m1/ Mac OS Air 2019
iPhone XR
案件として募集すればいいです。
> Flutterでの設定ファイル等でHTTP通信を可能にする事
については下記リンクを参照のこと。Manifest.xml/info.plistに書き込めばよいそうです。
https://stackoverflow.com/questions/64197752/bad-state-insecure-http-is-not-allowed-by-platform
が、わざわざセキュア通信を使わない、という設定にするのでアプリとしてはあまり好ましくない状態ですし、上記リンク回答のコメントにもあるように、iOSの場合はアプリ申請時にリジェクトとなる可能性もあるようです。
> fastAPIでSSL通信ができるようにする
ためには、このあたりを参考にされてはいかがでしょうか。FastAPIは触ったことがないので筋違いの回答でしたら申し訳ありません。
https://qiita.com/uezo/items/847e1911ac486f5a89c4
まず、Bad State Insecure HTTP is not allowed by platformというエラーですが、
ios/Runner/info.plistにて、セキュリティを無効にする設定してみてください。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
次にHandshakeException: Connection terminated during handshakeですが、http⇨httpsに変えたのが原因なので、
httpに戻してみてください。
githubにinfo.plistの部分とAPI実装の簡単な流れを書いてみたので、FastAPIは詳しくないのですが、少しでも参考になればと思います。
https://github.com/tyefu/infoplistandapi