Flutter 颤振斩波器不处理错误响应

Flutter 颤振斩波器不处理错误响应,flutter,retrofit,chopper,Flutter,Retrofit,Chopper,我在我的颤振项目中使用了斩波器 AuthRestService类: import 'package:chopper/chopper.dart'; import 'package:flutter_meal_app/utils/constants.dart'; import 'package:injectable/injectable.dart'; part 'auth_rest_service.chopper.dart'; @prod @singleton @ChopperApi() abst

我在我的颤振项目中使用了斩波器

AuthRestService类:

import 'package:chopper/chopper.dart';
import 'package:flutter_meal_app/utils/constants.dart';
import 'package:injectable/injectable.dart';

part 'auth_rest_service.chopper.dart';

@prod
@singleton
@ChopperApi()
abstract class AuthRestService extends ChopperService {

  @Post(path: '/accounts:signUp?key={authKey}')
  Future<Response> signup(@Path('authKey') String authKey, @Body() Map<String, dynamic> body);

  @Post(path: '/accounts:signInWithPassword?key={authKey}')
  Future<Response> login(@Path('authKey') String authKey, @Body() Map<String, dynamic> body);

  @factoryMethod
  static AuthRestService create() {
    final client = ChopperClient(
        baseUrl: Constants.AUTH_BASE_URL,
        converter: JsonConverter(),
        services: [_$AuthRestService()],
        interceptors: [HttpLoggingInterceptor()]);

    return _$AuthRestService(client);
  }
}
这是webcall(成功和失败)的日志

-->POSThttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=yourauthkey
内容类型:application/json;字符集=utf-8
{“电子邮件”:palaksdarji@gmail.com,“密码”:“123456”,“returnSecureToken”:true}
-->端柱(78字节正文)
成功:
{
“idToken”:“…”,
........
}
失败:
端柱
我在日志中得到的错误是:

error is Instance of 'Response<dynamic>'
错误是“响应”的实例
我在我的项目中使用了相同类型的RestService,它指向另一台服务器,并且可以正常工作,这个AuthRestService是用于firebase身份验证的RestService的精确副本。我在日志中得到的错误来自于我们调用“注册”API的那一行,这让我对我的ChopperClient感到好奇


你们知道怎么回事吗??请帮忙。谢谢。

也许您可以像这样解析错误响应

 Response response = await _authRestService.signup(AUTH_KEY,
          {'email': email, 'password': password, 'returnSecureToken': true});

  var res = SignUpResponse.fromJson(response.body);
SignUpResponse

part 'sign_up_response.g.dart';

@JsonSerializable()
class SignUpResponse extends BaseResponse {
  var error = new Error();
  SignUpResponse();

  factory SignUpResponse.fromJson(Map<String, dynamic> json) =>
      _$SignUpResponseFromJson(json);
  Map<String, dynamic> toJason() => _$SignUpResponseToJson(this);
}
部分“注册响应.g.dart”;
@JsonSerializable()
类SignUpResponse扩展了BaseResponse{
var error=新错误();
SignUpResponse();
factory SignUpResponse.fromJson(映射json)=>
_$SignUpResponseFromJson(json);
映射到Jason()=>$SignUpResponseToJson(此);
}

也许您可以像这样解析错误响应

 Response response = await _authRestService.signup(AUTH_KEY,
          {'email': email, 'password': password, 'returnSecureToken': true});

  var res = SignUpResponse.fromJson(response.body);
SignUpResponse

part 'sign_up_response.g.dart';

@JsonSerializable()
class SignUpResponse extends BaseResponse {
  var error = new Error();
  SignUpResponse();

  factory SignUpResponse.fromJson(Map<String, dynamic> json) =>
      _$SignUpResponseFromJson(json);
  Map<String, dynamic> toJason() => _$SignUpResponseToJson(this);
}
部分“注册响应.g.dart”;
@JsonSerializable()
类SignUpResponse扩展了BaseResponse{
var error=新错误();
SignUpResponse();
factory SignUpResponse.fromJson(映射json)=>
_$SignUpResponseFromJson(json);
映射到Jason()=>$SignUpResponseToJson(此);
}

您的电子邮件存在,无法再次使用。我知道,我正在尝试解析该错误响应。您的电子邮件存在,无法再次使用。我知道,我正在尝试解析该错误响应。