flutter RangeError (index): Invalid value: Only valid value is 0: 1#0

问题背景:

1、用node在本地启动了个服务监听端口3000
2、手机用android studio abd WiFi插件连接手机,即电脑与手机在同一局域网环境下
3、查询电脑ipv4地址,为 192.168.191.2
4、在dart文件里这样写:

 var url_ = "192.168.191.2:3000/v1/classic/latest";
  Response  response = await dio.get(url_);
  print(response);
 

问题

用postman对后端发起请求,能正常返回数据,证明接口没错:
flutter RangeError (index): Invalid value: Only valid value is 0: 1#0_第1张图片
但在flutter请求便出错了,
在这里插入图片描述

解决

经过一番试探排查:
原来是得在请求地址前面加个http,即如下:

 var url_ = "http://192.168.191.2:3000/v1/classic/latest";
  Response  response = await dio.get(url_);
  print(response);
 

这样,顺利取到后端返回数据
在这里插入图片描述

顺便提一下,开发app跟web不一样,web请求地址大可以写成这样:

http://127.0.0.3000/v1/classic/latest

然而在开发app时,其映射到的是ip地址,应该使用ip地址发起请求。

你可能感兴趣的:(flutter)