无效参数:URI flutter getconnect 中未指定主机

Invalid argument(s): No host specified in URI flutter getconnect

我正在尝试使用 Get Connect 包从完全依赖于 GetX 的 flutter 应用程序中进行 API 调用。

这是我正在使用的代码:

class OnBoardingProvider extends GetConnect {
  @override
  void onInit() {
    httpClient.baseUrl = 'https://www.my_domain_name.com/';
    httpClient.addRequestModifier((request) {
      request.headers['lang'] = Get.locale.languageCode;
      return request;
    });
    if (UserModelProvider().checkForLogin()) {
      httpClient.addAuthenticator((request) {
        String token = UserModelProvider().getToken();
        request.headers['Authorization'] = "Token $token";
        return request;
      });
    }
    super.onInit();
  }

  Future<List<dynamic>> getOnBoarding() async {
    final response = await get('static-pages/api/on_boarding/');
    return response.body;
  }

但它一直显示错误

Unhandled Exception: Invalid argument(s): No host specified in URI static-pages/api/on_boarding/

这意味着行 httpClient.baseUrl = ... 没有影响代码.. 或者我可能以错误的方式调用它!!

更新

我在调用函数时以这种方式调用 OnBoardingProvider 的实例:

    OnBoardingProvider().getOnBoarding().then((value) {
      print(value.body);
    });

方法 onInit 没有被调用,这就是 baseUrl 没有被初始化的原因。

当您使用 Get.put(Controller()) 注入依赖项时,将调用方法 'onInit';进入小部件树。

所以,

OnBoardingProvider onBoardingProvider = Get.put(onBoardingProvider());

 onBoardingProvider.getOnBoarding().then((value) {
      print(value.body);
    });

更多关于depenceny injection in GetX and Get Connect