首页 > 解决方案 > 为 http: ^0.12.0 包设置 ssl

问题描述

我想知道如何在 Flutter 中为 http(http: ^0.12.0) 包设置 ssl,而无需迁移到 dart:io。

目前我正在使用:

http.Client httpClient = http.Client();

而且我没有看到任何设置 ssl 的选项。

我必须使用

final SecurityContext context = SecurityContext.defaultContext;
HttpClient client = HttpClient(context);

来自飞镖:io?

标签: httpsslflutterpinning

解决方案


您可以创建一个 HttpOverride 以使客户端忽略此GitHub issue ticket中提到的错误证书。这只建议在开发版本中使用。

class DevHttpOverrides extends HttpOverrides {
  @override
  HttpClient createHttpClient(SecurityContext? context) {
    return super.createHttpClient(context)
        ..badCertificateCallback = (X509Certificate cert, String host, int port) => true;
  }
}

然后初始化要使用的 HttpOverride。

HttpOverrides.global = DevHttpOverrides();

推荐阅读