微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未为类型“Uri”定义运算符“+”

如何解决未为类型“Uri”定义运算符“+”

我有一个项目,我使用 http 包来发出各种 http 请求。我最近更新了该包,但无法将 url 链接附加到我拥有的基本 url 的末尾。这是示例代码

  var _url = Uri.parse('url here');

  var token;

  _getToken() async {
    SharedPreferences localStorage = await SharedPreferences.getInstance();
    token = jsonDecode(localStorage.getString('token'))['token'];
  }

  authData(data,apiUrl) async {
    try {
      var fullUrl = _url +  apiUrl;
      return await http.post(fullUrl,body: jsonEncode(data),headers: _setHeaders());
    } catch (e) {
      print(e);
    }
  }

这是它显示错误

The operator '+' isn't defined for the type 'Uri'.
Try defining the operator '+'.dartundefined_operator

错误发生在 var fullUrl = _url + apiUrl; 尤其是 + 运算符。在更新之前它运行良好但是我找不到解决方

解决方法

以这种方式使用它,首先组合您的字符串,然后解析您的 Uri。 Uri class\object 不是可以使用 + 连接字符串的字符串。执行以下操作:

String _urlBase = 'http://192.168.1.236/connect/api/v1';

保持 getToken() 函数原样,然后使用这个:

authData(data,apiUrl) async {
try {
  String _finalUrl = _urlBase + apiUrl;
  Uri _uri = Uri.parse(_finalUrl);
  return await http.post(_uri,body: jsonEncode(data),headers: _setHeaders());
} catch (e) {
  print(e);
}
}

那应该可以解决您的问题。

,

我使用带有字符串 url 的 http.post 试试这个

a='<a href="2021_03_19/">2021_03_19/</a> 19-Mar-2021 11:55 -'
b=${a#*>}
c=${b%%/<*}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。