Flutter:“未处理的异常:NoSuchMethodError:在null上调用了getter'httpClientAdapter'。”

时间:2020-04-01 17:51:09

标签: android flutter dio

我试图在Flutter上使用dio,但是我必须忽略证书验证,因此我对代码进行了一些更改,但出现了错误:

E/flutter (21674): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'httpClientAdapter' was called on null.
E/flutter (21674): Receiver: null
E/flutter (21674): Tried calling: httpClientAdapter

有人可以帮我修复它吗? 我正在使用的功能:

  Future<void> _login3() async {

    Dio dio;
    if (Platform.isAndroid) {
      (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
          (client) {
        client.badCertificateCallback =
            (X509Certificate cert, String host, int port) => true;
        return client;
      };
    }

    Response response =
        await Dio().get("https://sistema.hutransportes.com.br/api/login.php");
    // Response response;

    response =
        await dio.post("/test", data: {"user": "renato", "password": "123456"});
    print(response.data.toString());

  }

1 个答案:

答案 0 :(得分:1)

通过逐步检查代码,应该可以轻松解决此问题。我建议在查看答案之前在此方法的第一行上放置一个断点并进行调试,这很明显是怎么回事。异常消息还特别指出出了什么问题。

在尝试访问以下对象的属性之前,您尚未更新Dio的实例 该变量。 Dio dio创建变量,但该值为空。下一个 您尝试访问null值的httpClientAdapter属性的行 理应引发异常。 通过将第一行更改为Dio dio = Dio();

来解决此问题