You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart/Flutter调用Uri.https报FormatException无效字符错误咨询

报错原因

Uri.https 构造函数对入参格式有严格的分段要求:

  • 第一个入参对应 URI 的 authority 段,也就是https://之后、第一个路径分隔符/之前的部分,仅允许填写域名/IP地址,可按需追加:端口号,不允许出现/字符
  • 第二个入参对应 URI 的路径段,所有跟在主机后的斜杠开头的路径内容,都要放在这个参数里

你传入的APIHOST值为hammbwdsc02/visoon-backend,把本属于路径段的/visoon-backend错放到了主机参数里,解析到第12位的/时,构造器判定主机字段出现非法字符,直接抛出FormatException,和你看到的异常指向完全匹配。

修复方法

把混在主机参数里的路径前缀拆出来,和业务路径拼接后传入路径参数即可,修复后的可运行代码:

void main() {
  // 主机参数仅保留纯域名/IP,不带任何斜杠和路径内容
  const apiHost = 'hammbwdsc02';
  // 路径部分拼接服务前缀和业务接口路径
  const requestPath = '/visoon-backend/path';
  final uri = Uri.https(apiHost, requestPath, {'q': 'dart'});
  print(uri);
  // 运行输出:https://hammbwdsc02/visoon-backend/path?q=dart
}

如果你的HTTPS服务没有用默认443端口,直接在主机参数后追加端口即可,例如hammbwdsc02:8443是合法的主机参数格式。


内容的提问来源于stack exchange,提问作者Davood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:33:14