这是CaiYouHui前端,一个关于flutter的安卓app,前端使用flutter实现

secure_http_client.dart 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // lib/data/datasources/remote/secure_http_client.dart
  2. import 'dart:io';
  3. import 'package:http/http.dart' as http;
  4. import 'package:http/io_client.dart' as http;
  5. class SecureHttpClient {
  6. static http.Client createSecureClient() {
  7. // 生产环境:严格的证书验证
  8. if (const bool.fromEnvironment('dart.vm.product')) {
  9. final securityContext = SecurityContext.defaultContext;
  10. // 你可以添加自定义根证书(如果需要)
  11. // securityContext.setTrustedCertificates('path/to/certificate.pem');
  12. final httpClient = HttpClient(context: securityContext);
  13. // 配置安全策略
  14. httpClient.badCertificateCallback =
  15. (X509Certificate cert, String host, int port) {
  16. // 生产环境严格验证
  17. return false; // 拒绝无效证书
  18. };
  19. return http.IOClient(httpClient);
  20. }
  21. // 开发环境:宽松的验证
  22. else {
  23. final httpClient = HttpClient();
  24. httpClient.badCertificateCallback =
  25. (X509Certificate cert, String host, int port) {
  26. // 开发环境允许自签名证书
  27. // print('警告:使用自签名证书 - $host:$port');
  28. return true;
  29. };
  30. return http.IOClient(httpClient);
  31. }
  32. }
  33. }