打开项目里的 SignupService,改进一下在这个服务类里添加的 signup 方法。 先在方法的最上面添加一个 http.Response 名字叫 response 。
下面用一个 try , catch 区块,在 try 里要做的是执行 HTTP 请求注册新的用户, 如果请求失败,在 catch 里面,throw 一个错误信息, 无法连接服务。
清理一下不需要的代码。
在得到了请求主体的下面,用 if 判断一下,响应里的状态码 ,如果不等于 201 ,说明请求得到的响应是个异常信息,这样就执行一下这些代码,把异常信息转换成一个 ExceptionResponseModel,然后 throw 一条错误信息。
如果成功的创建了用户,可以添加一个 user ,根据响应的主体创建一个 UserModel, 最后可以让方法返回这个 user。
这样下面这个 switch 就不再需要了,把它删除掉。
在 SignupForm 里面,用了这个服务里的 signup 方法, 执行它的时候,如果发生异常,会用一个 SnackBar 显示一条提示。
在应用里试一下, 打开 注册新用户 ,输入一个已经存在的用户名,然后输入一个密码,按一下注册新用户。会在页面上提示用户已经存在了。
下面可以再停止运行应用的服务端, 在注册页面,按一下 注册新用户。这样会在 SnackBar 里显示 无法连接服务。
重新运行一下服务端应用。
在注册页面,输入用户名,密码,按一下注册。 注册成功,会让用户登录,然后在帐户页面显示这个用户的用户名。