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错误。
修复步骤
- 将
http.post方法里的Uri()替换为Uri.parse(url),让请求使用预先构建的注册接口地址 - 移除
// 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
相关产品推荐
相关产品推荐

