发生异常。 FormatException(FormatException:意外字符(在字符1处)<!DOCTYPE HTML PUBLIC“-// IETF // DTD HTML 2.0 // EN”> ^)

时间:2019-08-19 04:46:41

标签: laravel flutter

我想不能将数据从Flutter仿真器发布到数据库。 这是我在运行模拟器并输入数据后得到的错误。

  

发生异常。   FormatException(FormatException:意外字符(在字符1处)      ^   )

这是我的 api.dart 导入'dart:convert';

import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
class CallApi{
    final String _url = 'http://10.2.2.0/voyceb/api/';

    postData(data, apiUrl) async {
        var fullUrl = _url + apiUrl + await _getToken(); 
        return await http.post(
            fullUrl, 
            body: jsonEncode(data), 
            headers: _setHeaders()
        );
    }
    getData(apiUrl) async {
       var fullUrl = _url + apiUrl + await _getToken(); 
       return await http.get(
         fullUrl, 
         headers: _setHeaders()
       );
    }

    _setHeaders() => {
        'Content-type' : 'application/json',
        'Accept' : 'application/json',
    };

    _getToken() async {
        SharedPreferences localStorage = await
        SharedPreferences.getInstance();
        var token = localStorage.getString('token');
        return '?token=$token';
    }
}

signup.dart

中显示的错误
var res = await CallApi().postData(data, 'register');
var body = json.decode(res.body);

错误显示在

  

var body = json.decode(res.body);

在json.decode上。

我希望在模拟器中输入数据时将其插入数据库中。

1 个答案:

答案 0 :(得分:0)

也许JSON编码和解码过程存在问题。

您可以使用此方法解决

var res = await CallApi().postData(data, 'register');
var encodeFirst = json.encode(res.body);
var data = json.decode(encodeFirst);