【问题标题】:Flutter: http.get() Unhandled Exception: FormatException: Unexpected character (at character 1)Flutter:http.get()未处理的异常:FormatException:意外字符(在字符1处)
【发布时间】:2020-03-07 20:43:34
【问题描述】:

我正在创建一个 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;
}

【问题讨论】:

标签: android ios flutter dart


【解决方案1】:

它似乎正在工作,您是否检查过您是否有稳定的互联网连接,或者您是否连接到访问受限的 wifi? HTML 可能是强制门户或您连接的 wifi 中的限制网页。

【讨论】:

    【解决方案2】:

    试试这个端点:http://www.mocky.io/v2/5dca69523300004e003decc5

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2021-10-20
      • 2021-07-31
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 2022-11-14
      相关资源
      最近更新 更多