スポンサーリンク

Flutterエラー「SocketException: OS Error: Connection refused, errno = 111, address = 0.0.0.0, port = 41768」

Flutter
スポンサーリンク

今回の記事はFlutterをAndroid Studioを用いてFlutterでhttp通信を行い、ローカルサーバにpost通信を行う際に発生したエラーに関しての参考記事です。

スポンサーリンク

SocketExceptionエラー

基本的にhttp通信がうまく行っていない場合に起きるエラーになっております。http通信先のURLを正しいものに変更する必要があります。

私の場合はFlutter(AndroidStudioエミュレータ)からFlask(localhost)へのpost通信次に発生しました。

SocketExceptionエラー回避方法

原因としてはflask側でローカルホストのURLを「http://0.0.0.0:5000」で設定していたので、ローカルサーバはもちろんこのURLにPOST通信を行うことで可能になると考えていました。しかし、Android Studioのエミュレータは「ホストループバックインターフェイス=要はlocalhost」のエイリアスとして10.0.2.2を持っているそうです。その為、通信先としては「http://10.0.2.2:5000」を設定する必要があったということです。

コードは下記です。

Future<String> uploadImage() async {
    String url = "http://10.0.2.2:5000/";
    var request = http.MultipartRequest('POST', Uri.parse(url));
    var res = await request.send();
  }
#flask
from flask import Flask, request

app = Flask(__name__)

@app.route('/',methods=["POST"])
def hello():
    print("疎通")
    return "hello"

if __name__ == "__main__":
    app.run()

これでローカルサーバを立ててからhttp通信を行うことで、POST通信ができていることが確認できるはずです。

他にもflutterを用いて実践的な記事を書いておりますので気になる方は他の記事もご確認してみてください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

Flutter
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました