Flutter http.get报错:String类型无法赋值给Uri参数
报错根因
你遇到的argument_type_not_assignable(参数类型不匹配)错误,是因为0.13.0及以上版本的http库调整了API规则:http.get()等请求方法不再接收String类型的URL入参,强制要求传入Uri类型的对象,直接传字符串地址就会触发「String无法赋值给Uri类型」的报错。
修复方法
调用Uri.parse()方法,把字符串格式的URL地址转换为Uri类型实例再传入请求方法即可,修复后的完整代码如下:
class _HomeState extends State<Home> { Future<List> getData() async { // 将字符串URL转换为Uri类型后传入get方法 final response = await http.get(Uri.parse("http://10.0.2.2/mon_stock/getdata.php")); return json.decode(response.body); } }
注意事项
- 确认代码文件顶部已经正确导入http依赖:
import 'package:http/http.dart' as http; - 你代码里写的
10.0.2.2是安卓模拟器访问电脑本地服务的专用映射地址,不需要修改;如果是真机调试,替换成电脑所在局域网的实际IP即可。
内容的提问来源于stack exchange,提问作者Nzashi Jeanluc
相关产品推荐
相关产品推荐

