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);
网友评论