dart Flutter Format Exception中的错误:意外字符(在字符% 1处)

shstlldc  于 2023-05-26  发布在  Flutter
关注(0)|答案(1)|浏览(204)

大家好,我是新的Flutter,目前我正在调试模式下的项目工作,当我添加数据到我的应用程序,我得到了这个错误异常已经发生。

FormatException (FormatException: Unexpected character (at character 1)
<!DOCTYPE html>
^
)

请告诉我任何建议
下面是代码示例

Future<AccademicCertModel> GetCert() async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    var token = pref.getString('token');

    var headers = {'Authorization': 'Bearer $token'};
    var request = http.Request(
        'GET', Uri.parse('$baseUrl/api/user/training-certificates/get'));

    request.headers.addAll(headers);

    http.StreamedResponse response = await request.send();

    if (response.statusCode == 200) {
      return AccademicCertModel.fromJson(
          jsonDecode(await response.stream.bytesToString()));
    } else {
      return AccademicCertModel.fromJson(
          jsonDecode(await response.stream.bytesToString()));
    }
  }

我在这行jsonDecode(await response.stream.bytesToString()));上得到了错误

m1m5dgzv

m1m5dgzv1#

原因是返回的响应不是JSON,而是HTML。
您可以通过执行以下操作打印值:

var body = await response.stream.bytesToString();

  print('body: $body');

  if (response.statusCode == 200) {
    return AccademicCertModel.fromJson(jsonDecode(body));
  } else {
    return AccademicCertModel.fromJson(jsonDecode(body));
  }

token可能不正确,或者服务器出于某种原因拒绝了请求。

相关问题