dart – 无法使用Flutter调用Localhost,随机端口被分配给HTTP GET调用

我正在尝试构建一个Flutter应用程序,我需要使用 dart http library进行HTTP调用.所以这里是我用来拨打电话的剪辑,

import 'package:Flutter/material.dart';
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;

Future<List> getData() async {
    List data = new List();
    var httpClient = new HttpClient();
    var request = await httpClient.get("localhost",5000,'/search?query=hello');
    var response = await request.close();
    if (response.statusCode == HttpStatus.OK) {
      var jsonString = await response.transform(utf8.decoder).join();
      data = json.decode(jsonString);
      print(data);
      return data;
    } else {
      return data;
    }
  }

现在从我的代码调用getData(),这是我得到的错误

E/Flutter (30949): [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
E/Flutter (30949): SocketException: OS Error: Connection refused,errno = 111,address = localhost,port = 46999
E/Flutter (30949): #0      _HomePageState.getData (file:///home/bholagabbar/AndroidStudioProjects/fnd_modile_client/lib/main.dart:75:19)
E/Flutter (30949): <asynchronous suspension>
E/Flutter (30949): #1      _HomePageState.build.<anonymous closure> (file:///home/bholagabbar/AndroidStudioProjects/fnd_modile_client/lib/main.dart:56:15)
E/Flutter (30949): #2      _InkResponseState._handleTap (package:Flutter/src/material/ink_well.dart:478:14)
E/Flutter (30949): #3      _InkResponseState.build.<anonymous closure> (package:Flutter/src/material/ink_well.dart:530:30)
E/Flutter (30949): #4      GestureRecognizer.invokeCallback (package:Flutter/src/gestures/recognizer.dart:102:24)
E/Flutter (30949): #5      TapGestureRecognizer._checkUp (package:Flutter/src/gestures/tap.dart:161:9)
E/Flutter (30949): #6      TapGestureRecognizer.handlePrimaryPointer (package:Flutter/src/gestures/tap.dart:94:7)
E/Flutter (30949): #7      PrimaryPointerGestureRecognizer.handleEvent (package:Flutter/src/gestures/recognizer.dart:315:9)
E/Flutter (30949): #8      PointerRouter._dispatch (package:Flutter/src/gestures/pointer_router.dart:73:12)
E/Flutter (30949): #9      PointerRouter.route (package:Flutter/src/gestures/pointer_router.dart:101:11)
E/Flutter (30949): #10     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:Flutter/src/gestures/binding.dart:143:19)
E/Flutter (30949): #11     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:Flutter/src/gestures/binding.dart:121:22)
E/Flutter (30949): #12     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:Flutter/src/gestures/binding.dart:101:7)
E/Flutter (30949): #13     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:Flutter/src/gestures/binding.dart:64:7)
E/Flutter (30949): #14     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:Flutter/src/gestures/binding.dart:48:7)
E/Flutter (30949): #15     _invoke1 (dart:ui/hooks.dart:134:13)
E/Flutter (30949): #16     _dispatchPointerDataPacket (dart:ui/hooks.dart:91:5)

我的API已正常运行,正如您在错误日志中看到的那样,请求似乎没有经过.这究竟是什么问题?

为了记录,我尝试了get,getUrl的每个排列,甚至尝试用How to point to localhost:8000 with the Dart http package in Flutter?中提到的替换localhost和127.0.0.1和10.0.2.2.我正在手机上直接测试(One Plus 3)

解决方法

这应该做到这一点

adb reverse tcp:5000 tcp:5000

https://developer.android.com/studio/command-line/adb.html

或者使用adb reverse –list查看重定向的设置.

相关文章

这篇文章主要讲解了“FlutterComponent动画的显和隐怎么实现...
这篇文章主要讲解了“flutter微信聊天输入框功能如何实现”,...
本篇内容介绍了“Flutter之Navigator的高级用法有哪些”的有...
这篇文章主要介绍“Flutter怎么使用Android原生播放器”,在...
Flutter开发的android端如何修改APP名称,logo,版本号,具体...
Flutter路由管理初识路由概念一.路由管理1.1.Route1.2.Mater...