1

API 呼び出しを行うために Dio Client を使用しようとしています。応答を受信して​​いる間、エラーがスローされます

'_InternalLinkedHashMap' はタイプ 'String' のサブタイプではありません

それを解決しようとしていますが、私はできません。以下はコードです


  Future<dynamic> get(
      String uri, {
        Map<String, dynamic> queryParameters,
        Options options,
        CancelToken cancelToken,
        ProgressCallback onReceiveProgress,
      }) async {
    try {
      final Response response = await _dio.get(
        uri,
        queryParameters: queryParameters,
        options: options,
        cancelToken: cancelToken,
        onReceiveProgress: onReceiveProgress,
      );
      return response.data;
    } catch (e) {
      print(e.toString());
      throw e;
    }
  }
} 

Post API 呼び出し

Future<News> getPosts() async {
    try {
      final res = await _dioClient.get(Endpoints.getPosts);
      return News.fromJson(res);
    } catch (e) {
      print(e.toString());
      throw e;
    }
  }

モデル クラスは built_value を使用します

abstract class News implements Built<News, NewsBuilder> {
  News._();

  factory News([updates(NewsBuilder b)]) = _$News;

  @BuiltValueField(wireName: 'status')
  String get status;
  @BuiltValueField(wireName: 'totalResults')
  int get totalResults;
  @BuiltValueField(wireName: 'articles')
  BuiltList<Articles> get articles;
  String toJson() {
    return json.encode(serializers.serializeWith(News.serializer, this));
  }

  static News fromJson(String jsonString) {

    return serializers.deserializeWith(
        News.serializer, json.decode(jsonString));
  }

  static Serializer<News> get serializer => _$newsSerializer;
}

シリアライザークラス

@SerializersFor([
  News,
  Articles,
  Source,
])
final Serializers serializers = (_$serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();

それを解決する方法を教えてください

4

1 に答える 1