dart – 无法使用Flutter调用Localhost,随机端口被分配给HTTP GE
发布时间:2020-12-14 14:50:08 所属栏目:百科 来源:网络整理
导读:我正在尝试构建一个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
我正在尝试构建一个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查看重定向的设置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |