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



我正在尝试使用GetConnect包从完全依赖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);
});

有关GetX和Get-Connect 中depenceny注入的更多信息

最新更新