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

Flutter报错:Invalid argument(s): No host specified in URI 求助

修复AuthService中的ArgumentError错误(No host specified in URI)

错误原因

你代码里已经定义了正确的接口地址变量url,但发起http.post请求时,传入了空的Uri()实例,没有使用构建好的接口地址,导致系统无法识别请求的主机地址,从而抛出No host specified in URI错误。

修复步骤

  1. 将http.post方法里的Uri()替换为Uri.parse(url),让请求使用预先构建的注册接口地址
  2. 移除// ignore: unused_local_variable注释,因为url变量现在会被正常调用

修复后的完整代码

class AuthService {
  String baseUrl = 'http://shamo-backend.buildwithangga.id/api';

  Future<UserModel?> register({
    required String name,
    required String username,
    required String email,
    required String password,
  }) async {
    var url = '$baseUrl/register';
    var header = {'Content-Type': 'application/json'};
    var body = jsonEncode({
      'name': name,
      'username': username,
      'email': email,
      'password': password,
    });

    var response = await http.post(
      Uri.parse(url),
      headers: header,
      body: body,
    );

    print(response.body);

    if (response.statusCode == 200) {
      var data = jsonDecode(response.body)['data'];
      UserModel user = UserModel.fromJson(data['user']);
      user.token = 'Bearer ' + data['access_token'];

      return user;
    } else {
      throw Exception('Gagal Register');
    }
  }
}

额外验证点

修复后测试注册功能时,请确认:

  • 传入的name、username等参数格式符合后端接口要求
  • 后端服务处于可访问状态
  • 响应返回的data结构与UserModel的fromJson方法适配,能正确解析用户信息和token

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:21:35