未处理的异常:类型“_InternalLinkedHashMap<String, dynamic>”不是“String”类型的子类型(在带有 POST API 的 dio 包中)
Posted
技术标签:
【中文标题】未处理的异常:类型“_InternalLinkedHashMap<String, dynamic>”不是“String”类型的子类型(在带有 POST API 的 dio 包中)【英文标题】:Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String' (in dio package with POST API) 【发布时间】:2021-11-28 08:44:21 【问题描述】:class AuthenticationApi
final dio = Dio(BaseOptions(baseUrl: FlavorApi.getBaseUrl()));
Future<dynamic> login(
required String email, required String password) async
try
FormData formData = FormData.fromMap(
'email': email, 'password': password, 'ip': '127.0.0.1');
final response = await dio.post(
'/login?oauth_consumer_key=$FlavorApi.getConsumerKey()&oauth_consumer_secret=$FlavorApi.getConsumerSecret()',
data: formData);
var responseData = jsonDecode(response.data); //error is coming here
print('Data = $responseData');
on DioError catch (e)
print(e.message);
当我将数据转换为 JSON 格式时,我收到错误 Unhandled Exception: type '_InternalLinkedHashMap
我尝试了很多解决方案,但都没有解决,谁能帮我解释一下为什么 dio 包会出现这个错误。您可以在下面看到问题图片:
【问题讨论】:
【参考方案1】:jsonDecode 方法从字符串创建一个 Map。 您的 response.data 已经是一个 Map。
可以查看here的方法。
另外,我建议您检查 JSON 序列化。它与 jsonDecode 在同一页面上,但这里是特定的link。
希望我的回答对你有帮助! :)
【讨论】:
谢谢@Marius 它正在工作,再次感谢您的帮助。以上是关于未处理的异常:类型“_InternalLinkedHashMap<String, dynamic>”不是“String”类型的子类型(在带有 POST API 的 dio 包中)的主要内容,如果未能解决你的问题,请参考以下文章
颤动的json未处理的异常:类型'_InternalLinkedHashMap
ValueNotifier 未处理的异常:类型“String”不是“index”类型“int”的子类型
Flutter 中的错误:未处理的异常:“Null”类型不是“String”类型的子类型
未处理的异常:'String' 类型不是'index' 的'int' 类型的子类型问题 Dart 和颤振