1. クラウドソーシングTOP
  2. みんなのお仕事相談所
  3. FlutterとFastAPIのアプリ開発を行なっていますが、実機でのHTTP通信がエラーになる原因を教えて頂きたいです。
みんなのお仕事相談所

「みんなのお仕事相談所」では、ユーザーさまのご依頼の相場や製作期間、
契約書やお金に関する悩みを気軽に相談できるQ&Aコミュニティです。
違反案件についてはよくある質問の「【共通】違反のお仕事とは」をご覧ください。
また、違反報告についてはよくある質問の「【共通】違反報告とは」をご確認ください。

受注者からの相談
その他(プログラミング)に関する相談

FlutterとFastAPIのアプリ開発を行なっていますが、実機でのHTTP通信がエラーになる原因を教えて頂きたいです。

回答
受付中
回答数
3
閲覧回数
3074
すぐ知りたい!  : すぐ知りたい!

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

2021年01月31日 13:54
xxxxxxxxxxx12200さんからの回答

案件として募集すればいいです。

2021年01月31日 17:42
racchie/三浦久志さんからの回答

> 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

2021年02月01日 09:27
naotobabaさんからの回答

まず、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

2021年02月18日 21:21
不安や疑問に真摯に向き合い改善につとめます クラウドワークス安心安全宣言