如何在Flutter中使用Chopper添加多个baseUrl?

时间:2020-03-25 13:27:42

标签: flutter dart

是否可以在Chopper上添加多个baseUrl?

package url

service.dart

@ChopperApi(baseUrl: 'http://55.88.209.20')
abstract class Services extends ChopperService {
  static Services create([ChopperClient client]) => _$Services(client);

  // Register User
  @Post(path: /reg-user')
  Future<Response> registerPost();

chopper_client

class OrelGoClient {
  final ChopperClient chopperClient;

  OrelGoClient()
      : chopperClient = ChopperClient(
            services: [Services.create()],
            baseUrl: 'http://55.88.209.20',
            interceptors: [HttpLoggingInterceptor()],
  converter:JsonConverter() ){
    Logger.root.level = Level.ALL;
    Logger.root.onRecord.listen((rec) {
      print('${rec.level.name}: ${rec.time}: ${rec.message}');
    });
  }
}

1 个答案:

答案 0 :(得分:0)

Chopper FAQ的食谱

运行时baseUrl更改

例如,如果对于“常规”或“付费”用户,您必须在应用程序中动态使用其他服务器或路由,则可能需要更改网络调用的基本URL。您可以将当前服务器的基本URL存储在您的SharedPreferences中(如果需要,可以对其进行加密/解密),并在这样的拦截器中使用它:

(Request request) async =>
              SharedPreferences.containsKey('baseUrl')
                  ? request.copyWith(
                      baseUrl: SharedPreferences.getString('baseUrl'))
                  : request