答案实际上是 Flutter 在exception message 的这一部分中建议的:
'_InternalLinkedHashMap' 不是'Map' 类型的子类型
什么意思?
这意味着,您的一个变量是'_InternalLinkedHashMap<String, Object>',而flutter希望您将其更改为'Map<String, String>'类型
您应该将queryParameters 中的密钥之一设为此'Map<String, String>' 类型
如何?
1。导入 Dart 转换
通过导入dart:convert,我们将拥有jsonEncode 方法
import 'dart:convert'; // put this at top of your file
2。将嵌套值转换为字符串
final nestedValue = {
"login": "login",
"password": "pwd",
};
String stringValue = jsonEncode(nestedValue);
3。把它放回你的主要参数
final queryParameters = {
"id": "6767676767676",
"device": "tatatata",
"user": stringValue
};
final uri = Uri.http('44.44.444.444:8080', 'get-answer', queryParameters);
最终代码
这将是您的最终代码,如下所示:
import 'dart:convert'; // put this at top of your file
final nestedValue = {
"login": "login",
"password": "pwd",
};
String stringValue = jsonEncode(nestedValue); // add this
final queryParameters = {
"id": "6767676767676",
"device": "tatatata",
"user": stringValue
};
final uri = Uri.http('44.44.444.444:8080', 'get-answer', queryParameters);