Flutter:http.get()未处理的异常:FormatException:意外的字符(在字符1处)

时间:2019-11-12 07:06:21

标签: android ios flutter dart

我正在创建Flutter应用,并且试图获取我的虚拟数据from this endpoint。我想打印响应数据,但是我的问题是在获取API时,Content-Type是text / html而不是application / json。我正在使用HTTP包。

这是error

这是我的代码方法 为 base_api.dart

Future<MODEL> getAll() async {
  Map<String, String> headers = {"Content-type": "application/json"};
  final result = await http.get(url, headers: headers);
  print("Content type: ${result.headers['content-type']}");
  if (result.statusCode >= 200 && result.statusCode < 300 ) {
     return json.decode(result.body);
  } else {
     return json.decode(null);
  }                                                                                         
}

这是我在 services.dart

中的代码
Future loadUserTimeLogs() async {
  var userRepo = UserRepository();
  userRepo.getAll().then((val) {
    print("GET VAL: $val");
  }); }                                                                                  

这是我的 base_repository.dart

Future getAll({String query}) {
 var completer = Completer();
 api.getAll().then((val) {
 if (val == null) {
    completer.complete(dao.getAll());
 } else {
    completer.complete(val);
 }
 });                                                                                     
 return completer.future;
}

2 个答案:

答案 0 :(得分:0)

似乎正在运行,您是否检查过互联网连接是否稳定或连接到访问受限的wifi? HTML可能是您所连接的WiFi的强制门户或限制网页。

答案 1 :(得分:0)

尝试使用此端点:http://www.mocky.io/v2/5dca69523300004e003decc5

并在您的getAll()函数中使用此return json.decode(result.body)['data'];