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);
},
);
我正在尝试进行 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);
},
);