api 调用 - Flutter

api calls - Flutter

我正在尝试进行 api 调用,但我无法成功,在调用之前一切正常,然后停止一切,函数完成,我做错了什么?

Future<String> get() async {
var url = Uri.parse("https://10.0.2.2:7021/api/Auth/login");

var headers = {"content-type": "application/json"};
final msg = jsonEncode(
    {"username": "string", "password": "string", "email": "string"});

var response = await http!.post(url, body: msg, headers: headers);

if (response.statusCode == 200) {
  var data = jsonDecode(response.body);
  print("Correct");
  return "Correct";
} else {
  print(response.statusCode);

  print("User not allowed");
  throw Exception("User not allowed");
}

}

Mistake comes here

debug window

你导入过这样的http包吗?

import 'package:http/http.dart' as http;

像这样的用例

var response = await http.post(url, body: msg, headers: headers);

添加 .php 以在 url 中登录: https://10.0.2.2:7021/api/Auth/login.php 如果您正在使用 php 或 .py 用于 python

您可能导入了“错误的”http。这样做:

import 'package:http/http.dart' as http;

你不需要写 http! 因为 http 是一个包并且永远不会为空而且因为你正在做 http! 我猜你在你的代码中导入了一些错误的东西。

编辑:

可能你的设备无法到达10.0.2.2(或那个端口),你应该设置超时以快速找到它:

http.post(url, body: msg, headers: headers).timeout(
  const Duration(seconds: 3),
  onTimeout: () {
    // request timed out
    return http.Response('Error', 408);
  },
);