我正在try 构建一个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启动并正常运行,正如您在错误日志(log)中看到的那样,请求似乎没有通过.这里到底有什么问题?

为了记录在案,我try 了getgetUrl的每一种排列,甚至try 了用How to point to localhost:8000 with the Dart http package in Flutter?中提到的10.0.2.2替换localhost127.0.0.1.我直接在手机上测试(一加三)

推荐答案

这个应该可以了

adb reverse tcp:5000 tcp:5000

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

或者使用adb reverse --list查看设置了哪些重定向.

Dart相关问答推荐

`异步内联方法`的这些定义之间有什么区别?

如何在 Flutter 的 firebase_database 中执行事务?

PageView.builder 给出水平视口被给出无界高度错误

如何在 Dart 中实现继承?

FlutterError (setState() 在 dispose() 之后调用:(生命周期状态:defunct,not mounted)

在 Flutter 中检测键盘事件

Flutter web url 导航

访问用户环境变量

Flutter 错误:The _ScaffoldLayout custom multichild layout delegate forgot to lay out the following child

如何将 Stream 转换为 List

Dart-对base64字符串进行编码和解码

如何在Dart中测试流

设置Dart中非常量的默认值

断言失败时如何在 Dart 中打印消息?

Dart 转换列表的每个元素

函数调用前的感叹号是什么意思?

Dart 的输出是什么样的?

如何以 Dart 语言将变量完全转储/打印到控制台?

Dart 中的函数类型定义(typedefs)/函数类型别名(function-type aliases)是什么?

Dart 是否支持枚举?