使用 Flutter 连接数据库时出现问题

Problems connecting with a DB using Flutter

我试图将我的 flutter 应用程序与数据库连接以获得登录系统,但我遇到了一些问题。

首先,我有两个版本的 Flutter,在最新的版本中,代码无法运行,但在旧版本中,运行完美。

这是有效的代码

class _Login extends State<Login> {
  TextEditingController user = TextEditingController();
  TextEditingController pass = TextEditingController();

Future login() async {
    var url = "https://charlotapp.000webhostapp.com/login.php";
    var response = await http.post(url, body: {
      "username": user.text,
      "password": pass.text,
    });    
 var data = json.decode(response.body);
}

这是我正在尝试运行的代码

class _Login extends State<Login> {
  TextEditingController user = TextEditingController();
  TextEditingController pass = TextEditingController();

  Future login() async {
    var response = await http.post(
        Uri.http("https://charlotapp.000webhostapp.com/login.php", ""),
        body: {
          "username": user.text,
          "password": pass.text,
        });
    var data = json.decode(response.body);
}

很像是吧?但是对于第二个,我得到了这个错误;

I/ViewRootImpl@50dab36[MainActivity]( 2374): ViewPostIme pointer 0
I/ViewRootImpl@50dab36[MainActivity]( 2374): ViewPostIme pointer 1
E/flutter ( 2374): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: FormatException: Invalid radix-10 number (at character 1)
E/flutter ( 2374): //charlotapp.000webhostapp.com/login.php
E/flutter ( 2374): ^
E/flutter ( 2374):
E/flutter ( 2374): #0      int._throwFormatException (dart:core-patch/integers_patch.dart:131:5)
E/flutter ( 2374): #1      int._parseRadix (dart:core-patch/integers_patch.dart:157:16)


有什么想法吗?感谢您的宝贵时间

当您使用 Uri.http / https 时,您不需要解析完整的 url 因为您已经告诉您使用 http/https.

class _Login extends State<Login> {
  TextEditingController user = TextEditingController();
  TextEditingController pass = TextEditingController();
  Future login() async {
    var response = await http.post(
        Uri.https("charlotapp.000webhostapp.com/login.php", ""),
        body: {
          "username": user.text,
          "password": pass.text,
        });
    var data = json.decode(response.body);
}

参考这个:https://flutter.dev/docs/cookbook/networking/send-data#2-sending-data-to-server