如何在flutter(dart)中正确接收来自服务器的响应?

46qrfjad  于 2023-03-09  发布在  Flutter
关注(0)|答案(1)|浏览(125)

我无法在flutter中正确处理来自服务器的响应,在数据库中成功创建了用户,在postman应用程序中我也从服务器获得了响应:{" success ":true},但由于某种原因,控制台中显示连接错误,尽管用户也从表中的flutter成功创建:Future_sendLanguages(列出选择的语言,字符串名字,字符串姓氏,字符串电子邮件,字符串密码)async {final url = URI. parse('http://localhost/create_user.php');最终响应=等待www.example.com(网址,标题:http.post"应用程序/json "},主体:jsonEncode({'名字':小部件。名字,'姓氏':小部件。姓氏,"电子邮件":www.example.com,"密码":小工具。密码,"语言":_selectedLanguages. map((语言)=〉语言.代码). toList(),}),);widget.emailif(jsonResponse ["成功"]){导航器. pop(上下文);}} _selectedLanguages.map((language) => language.code).toList(), }), ); final jsonResponse = json.decode(response.body); if (jsonResponse["success"]) { Navigator.pop(context); } }
我尝试将if更改为succes == true,但也不起作用,dart无法正确处理来自服务器的响应

2w2cym1i

2w2cym1i1#

我认为您遇到的错误(请共享错误日志)与响应无关。但您可以检查状态代码并查看其行为:

Future _sendLanguages(List selectedLanguages, String firstName, String lastName, String email, String password) async { 
final url = Uri.parse('http://localhost/create_user.php'); 
final response = await http.post(
  url,
  headers: {"Content-Type": "application/json"},
  body: jsonEncode({
    'first_name': widget.firstName,
    'last_name': widget.lastName,
    'email': widget.email,
    'password': widget.password,
    'languages': _selectedLanguages.map((language) => language.code).toList(),
  }),
);

print('response: ${response.body}'); // this line shows you the response

if (response.statusCode == 200) {
  final jsonResponse = json.decode(response.body);
  if (jsonResponse["success"] == true) {
    Navigator.pop(context);
  }
} else {
  print('Request failed with this status code: ${response.statusCode}.');
 }
}

如果响应代码不是200,你有问题,你的请求(如果你已经检查了网址和标题和你的身体是正确的).
如果响应码是200,你又有问题了,注意这个print('response: ${response.body}');,看看你的解析方式是否正确。如果你还是有问题,你应该说更多的细节来帮助你。
快乐的编码。

相关问题