Json Flutter - Flutter中的Json post方法出错,给出了HTML错误

问题描述 投票:0回答:1

我试图通过颤振发布到api,但它给了我这个错误:

 I/flutter ( 5558): <!DOCTYPE html>
 I/flutter ( 5558): <html lang="en"> 
 I/flutter ( 5558): <head>
 I/flutter ( 5558): <meta charset="utf-8">
 I/flutter ( 5558): <title>Error</title>
 I/flutter ( 5558): </head>
 I/flutter ( 5558): <body>
 I/flutter ( 5558): <pre>Cannot POST /login</pre>
 I/flutter ( 5558): </body>
 I/flutter ( 5558): </html>
 I/flutter ( 5558): POST http://192.168.1.5:5000/login

我的代码:

void create() async {
      Dio dio = Dio();
      var response = await http.post('http://192.168.1.5:5000/login',headers: {
        "Accept":"application/json",
      },body: {
    "username": "${usernameController.text}",
    "password": "${passwordController.text}"
    });
      print(response.body);
      print(response.request);
    } 

有人可以帮忙吗? ,这个错误很奇怪

json rest api dart flutter
1个回答
0
投票

您想使用post请求发布JSON数据,但是要传递body参数,您将传递Map<String, String>这是一个dart对象。

所以你需要将这个地图转换为json字符串。使用内置的dart:convert包来执行此操作

import 'dart:convert'

void create() async {
  final Map<String, String> jsonData = {
    "username": "${usernameController.text}",
    "password": "${passwordController.text}"
    };

      Dio dio = Dio();
      var response = await http.post('http://192.168.1.5:5000/login',headers: {
        "Accept":"application/json",
      },body: json.encode(jsonData),
      );
      print(response.body);
      print(response.request);
    } 

参考:JSON support in dart

© www.soinside.com 2019 - 2024. All rights reserved.