Flutter 中的 Http 请求不会返回任何内容,也不会抛出任何错误

6 android http dart flutter

使用简单的默认 http 库,这真的让我很困惑。Http 请求永远不会返回,也不会抛出任何错误。

\n\n

这是医生日志:

\n\n
[\xe2\x88\x9a] Flutter (Channel master, 1.19.0-2.0.pre.34, on Microsoft Windows [Version 10.0.18362.836], locale en-US)\n    \xe2\x80\xa2 Flutter version 1.19.0-2.0.pre.34 at E:\\FlutterSDK\n    \xe2\x80\xa2 Framework revision 610dc170d9 (3 days ago), 2020-05-14 00:37:02 +0800\n    \xe2\x80\xa2 Engine revision b59e3e9c39\n    \xe2\x80\xa2 Dart version 2.9.0 (build 2.9.0-8.0.dev 2bf3259005)\n\n\n[\xe2\x88\x9a] Android toolchain - develop for Android devices (Android SDK version 29.0.2)\n    \xe2\x80\xa2 Android SDK at E:\\AndroidSDK\n    \xe2\x80\xa2 Platform android-29, build-tools 29.0.2\n    \xe2\x80\xa2 ANDROID_HOME = E:\\AndroidSDK\n    \xe2\x80\xa2 Java binary at: E:\\android-studio\\jre\\bin\\java\n    \xe2\x80\xa2 Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)\n    \xe2\x80\xa2 All Android licenses accepted.\n\n[\xe2\x88\x9a] Android Studio (version 3.5)\n    \xe2\x80\xa2 Android Studio at E:\\android-studio\n    \xe2\x80\xa2 Flutter plugin version 42.1.1\n    \xe2\x80\xa2 Dart plugin version 191.8593\n    \xe2\x80\xa2 Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)\n\n[\xe2\x88\x9a] Connected device (1 available)\n    \xe2\x80\xa2 Android SDK built for x86 \xe2\x80\xa2 emulator-5554 \xe2\x80\xa2 android-x86 \xe2\x80\xa2 Android 9 (API 28) (emulator)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是代码:

\n\n
clockIn(String number, String name, String company, String coords) async {\n  print(uri);\n\n  // var response = await http.post(uri, body: {\n  //   \'Employee_Number\': number,\n  //   \'Employee_Name\': name,\n  //   \'Company_Name\': company,\n  //   \'Coords_In\': coords,\n  //   \'Type\': \'IN\'\n  // });\n\n  var response = await http.get("https://google.com");\n\n  final statusCode = response.statusCode;\n  print(\'Response Status code: $statusCode\');\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我也尝试过 try-catch,但没有返回。任何地方也没有任何错误。真让我困惑。我在 AVD 以及我自己的设备上尝试过。

\n\n

这是它的名字:

\n\n
onPressed: () {\n                      if (!isActivated) return;\n                      getEmployeeData().then((value) async {\n                        Position pos = await Geolocator().getCurrentPosition(\n                            desiredAccuracy: LocationAccuracy.best);\n\n                        clockIn(value[0], value[1], value[2],\n                            "${pos.latitude}, ${pos.longitude}");\n                      });\n                    }\n
Run Code Online (Sandbox Code Playgroud)\n

Lun*_*dor 0

我认为这是因为谷歌,我尝试了具有不同网址的代码,例如它得到了响应;

clockIn() async {
    print("uri");
    var myUrl = 'https://www.msn.com';
    var response = await http.get(myUrl);
    print('Response status: ${response.statusCode}');
    print('Response body: ${response.body}');
  }
Run Code Online (Sandbox Code Playgroud)