为什么我在Flutter中的HTTP请求无法正常工作?

时间:2020-07-25 19:44:33

标签: http flutter dart flutter-web

我正在向我当前在本地托管的API发出HTTP请求。我目前正在收到此错误。在函数中,将打印“ 1”,但不打印“ 2”。

Future<http.Response> fetchUserData() async{
 print('1');
 final response = await http.get('http://localhost:5000/getUser/7890');
 print('2');
 return response;
}

这就是我调用函数的方式

var testVar = fetchUserData();
print(testVar);

我得到的错误是

Error: XMLHttpRequest error.
dart:sdk_internal 124039:30                           get current
packages/http/src/browser_client.dart.lib.js 214:124  <fn>
dart:sdk_internal 37029:58                            runUnary
dart:sdk_internal 32116:29                            handleValue
dart:sdk_internal 32663:49                            handleValueCallback
dart:sdk_internal 32701:17                            _propagateToListeners
dart:sdk_internal 32535:25                            [_complete]
dart:sdk_internal 37439:24                            _cancelAndValue
dart:sdk_internal 18487:17                            <fn>
  dart:sdk_internal 4673:16                             _checkAndCall
  dart:sdk_internal 4678:17                             dcall
  dart:sdk_internal 104576:23                           <fn>
at Object.createErrorWithStack (http://localhost:53647/dart_sdk.js:4477:12)
at Object._rethrow (http://localhost:53647/dart_sdk.js:37464:16)
at async._AsyncCallbackEntry.new.callback (http://localhost:53647/dart_sdk.js:37458:13)
at Object._microtaskLoop (http://localhost:53647/dart_sdk.js:37290:13)
at _startMicrotaskLoop (http://localhost:53647/dart_sdk.js:37296:13)

想知道是否有人发现错误。

2 个答案:

答案 0 :(得分:0)

如果您正在模拟器/移动设备上运行Flutter应用程序,但在PC上运行本地Web服务器,则localhost不是要使用的正确主机名。在移动设备(例如)上指向移动设备本身。

尝试将localhost替换为计算机的(网络)IP地址(并确保所有防火墙都允许连接)。

答案 1 :(得分:0)

我发现了问题。 API方面存在问题。 如果您使用的是Flask,请将这些行添加到API的顶部。

from pynput import mouse, keyboard
from pynput.keyboard import Key, Listener
def on_click(x,y, button,pressed):
     if pressed:
         print("mouse click")