Flutter [错误:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:类型“int”不是类型转换中“String”类型的子类型
Posted
技术标签:
【中文标题】Flutter [错误:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:类型“int”不是类型转换中“String”类型的子类型【英文标题】:Flutter [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: type 'int' is not a subtype of type 'String' in type cast 【发布时间】:2021-02-23 04:24:05 【问题描述】:我正在从我的 Flutter 应用程序发送一个 post api 请求以更新用户的数据并收到此错误[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常: “int”类型不是类型转换中“String”类型的子类型
我的代码
_data() async
setState(()
data();
);
Future<bool> data() async
final prefs = await SharedPreferences.getInstance();
final key = 'token';
final value = prefs.get(key) ?? 0;
http.Response response = await http.post(
"https://www.exmaple.com/api/user",
headers:
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Bearer $value'
,
body: 'key1': value1, 'key2': value2,
);
if (response.statusCode == 200)
return true;
else
return false;
当我单击一个按钮时,上面的代码有效。见下面代码
RaisedButton(
onPressed: ()
_data();
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(
builder: (BuildContext context) => Home()),
(Route<dynamic> route) => false);
,
child: Text('Press Me',
style: TextStyle(fontSize: 15)),
),
查看错误Error ScreenShot的截图
这里是错误error in line 76
【问题讨论】:
【参考方案1】:确保value1
和value2
是String
。
body: 'key1': value1.toString(), 'key2': value2.toString(),
【讨论】:
将它们转换为字符串将通过请求,但这不是一件奇怪的事情吗!。在 post 请求的正文中使用整数(或数值)是正常的,为什么会抛出这个错误?【参考方案2】:不知道究竟是哪一行给你带来了错误,但也许可以尝试解析它?
var value = int.tryParse(text);
【讨论】:
【参考方案3】:请使用如下认证。
'Authorization': 'Bearer '+$value.toString()
【讨论】:
不是授权问题。 我认为 $value 是 int 类型,所以在这里你必须将它转换为字符串。您是否检查过上述解决方案?以上是关于Flutter [错误:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:类型“int”不是类型转换中“String”类型的子类型的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 构建 iOS 错误:在 iOS 设备中构建 Flutter 应用程序时遇到错误