【问题标题】:Unhandled Exception: FormatException: Unexpected character未处理的异常:FormatException:意外字符
【发布时间】:2021-10-20 10:17:30
【问题描述】:

我无法转换我获取的数据,

但没有显示错误,我添加了一条打印语句来查找错误发生的位置

   Future<void> fetchAndSetProduct() async {
        final url =
            Uri.https('shopda-83b00-default-rtdb.firebaseio.com', '/products');
        try {
          print("karan  oneonofne ");
          final response = await http.get(url);
          final extractData = json.decode(response.body) as Map<String, dynamic>;
          final List<Product> loadedProduct = [];
          extractData.forEach((prodId, prodData) {
            loadedProduct.add(Product(
                id: prodId,
                title: prodData['title'],
                description: prodData['description'],
                price: prodData['price'],
                isFavourite: prodData['isFavourite'],
                imageUrl: prodData['imageUrl']));
          });
          print(loadedProduct[1]);
          _items = loadedProduct;
          notifyListeners();
        } catch (error) {
          throw (error);
        } finally {
          print('object');
        }
      }

然后我变成了这样

仍然无法获取数据。我想我无法将 HTML 更改为 Jason

【问题讨论】:

  • 您的 API 出现问题。它返回 html
  • 当你得到其他东西时,你期望某种对象。
  • 您的 API 调用可能格式错误,因此您没有收到 JSON 响应,而是收到了 HTML 错误页面。我建议不要使用Uri.https,而是将Uri.parse 与您在浏览器中测试过的网址一起使用。
  • 它不起作用。你能帮我重写代码吗?它给出了 HTML 而不是 Json

标签: firebase flutter


【解决方案1】:

您正在尝试使用直接链接从实时数据库中获取数据。

这需要您登录,这就是它返回的 HTML 页面。

您应该使用firebase_database 包从数据库中获取数据。

您应该将您的 fetchAndSetProduct 方法更新为:

Future<void> fetchAndSetProduct() async { 
  try {
    ...

    final DataSnapshot dataSnapshot =  await FirebaseDatabase.instance.reference().child('products').once();
    final extractData = json.decode(dataSnapshot.value) as Map<String, dynamic>;
    ...
  } catch (error) {
    ...
  } finally {
    ...
  }
}

【讨论】:

    【解决方案2】:

    我找到了 请简单地更改HTML文件Json

    final url =
                Uri.https('shopda-83b00-default-rtdb.firebaseio.com', '/products.json');
    

    【讨论】:

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