首页 > 解决方案 > 颤振中的http错误_InternalLinkedHashMap

问题描述

我在flutter中运行这组代码,但是运行时显示图片中的错误

在此处输入图像描述

import 'dart:convert';

import 'package:http/http.dart' as http;

class ServisApi {
  final client = http.Client();

  Future<ModelSpescal> PokomanSpeciesServisApli(int id) async {
    final Url = Uri.https('pokeapi.co', '/api/v2/pokemon-species/$id/');
    print('pokospikal' '  ' '${Url}');
    final response1 =
        await client.get(Url).then((value) => json.decode(value.body));
    print((response1.toString().isNotEmpty));
    final ResponsFromjson = ModelSpescal(test: response1);

    return ResponsFromjson;
  }
}

class ModelSpescal {
  final String test;
  ModelSpescal({required this.test});

  factory ModelSpescal.Fromjson(Map<String, dynamic> jsonTest) {
    return ModelSpescal(test: jsonTest['name']);
  }
}


main() {
  print(ServisApi().PokomanSpeciesServisApli(320));
}

标签: flutterhttpdartexceptionrest

解决方案


这可能是由于类型转换问题。由于您正在使用async并且await您可以简化如下代码。

Future<ModelSpescal> PokomanSpeciesServisApli(int id) async {
    // Other codes
    final response = await http.get(Url);
    final Map<String, dynamic> response1 = json.decode(response.body);
    final ResponsFromjson = ModelSpescal.Fromjson(response1);
    return ResponsFromjson;
}
 

推荐阅读