哥哥教你解决Flutter中原生HttpClient,第三方Http库,以及Dio三种网络请求方式各自Https证书问题方案

Flutter请求Https出现问题如下:

 报错原因就是证书不被信任,那么为了解决这个问题就需要强行信任:

步骤一:

如果你使用的是Flutter中自带的Httpclient,那么代码如下:

HttpClient client = HttpClient();

//badcertificatecallback 返回值为true就可以解决问题了

client.badCertificateCallback = callback(X509Certificate cert, String host, int port){ return true; }

var request = await client.getUrl(Uri.parse("https://wxpay.wxutil.com/pub_v2/app/app_pay.php"));

步骤二:

如果你使用的是第三方的http包,遇到这个问题可以通过以下方式解决:

import 'dart:io';

import 'package:http/http.dart' as http;

bool _certificateCheck(X509Certificate cert, String host, int port) =>

    host == 'devblog.paypal.com';

http.ClientpaypalClient(){

  var ioClient = new HttpClient()

      ..badCertificateCallback = _certificateCheck;

  return new http.IOClient(ioClient);

}

为其设置一个IOCliient既可以解决了。

但Flutter一直在更新,所以IOClient被移动了。

import'package:http/io_client.dart';

varioClient =newHttpClient() 

 ..badCertificateCallback = _certificateCheck;

 _client = IOClient(ioClient);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容