我正在尝试使用 Dio Client 进行 API 调用。当我收到响应时它会引发错误
“_InternalLinkedHashMap”不是“字符串”类型的子类型
试图解决它,但我不能。下面是代码
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;
}
}
}
发布 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();
帮我解决它