首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无效参数: URI中未指定主机

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

Stack Overflow用户
提问于 2022-01-27 10:32:09
回答 1查看 764关注 0票数 0

我正在尝试使用获取连接包从完全依赖于GetX的颤振应用程序中进行API调用。

下面是正在使用的代码:

代码语言:javascript
复制
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;
  }

但它总是让我看到错误

代码语言:javascript
复制
Unhandled Exception: Invalid argument(s): No host specified in URI static-pages/api/on_boarding/

这意味着行httpClient.baseUrl = ...没有影响代码..。或者是我说错了!!

更新

当我调用函数时,我以这种方式调用OnBoardingProvider实例:

代码语言:javascript
复制
    OnBoardingProvider().getOnBoarding().then((value) {
      print(value.body);
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-27 12:17:03

方法onInit没有被调用,这就是为什么baseUrl没有被初始化。

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

所以,

代码语言:javascript
复制
OnBoardingProvider onBoardingProvider = Get.put(onBoardingProvider());

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

更多关于GetX中的深度注射获取连接的信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70877033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档