Json Flutter - Ошибка с методом публикации Json во Flutter, приводящая к ошибке HTML - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь опубликовать в API по флаттеру, но он выдаёт мне эту ошибку:

<code> 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
I / флаттер (5558): I / флаттер (5558): I / флаттер (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);
    } 

кто-нибудь может помочь плз?эта ошибка очень странная

1 Ответ

0 голосов
/ 15 сентября 2018

Вы хотели опубликовать данные JSON с помощью запроса post, но для параметра 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 в дротике

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...