哥哥教你Flutter第三方庫(kù)http最強(qiáng)封裝,拿來(lái)就用,忽略證書,解決Handshake error in client (OS Error,CERTIFICATE_VERIFY_FAILED...

最近Flutter項(xiàng)目中訪問(wèn)https,總是報(bào)錯(cuò)如下:

這是https證書問(wèn)題,但一直沒找到Flutter中的解決方案。所以在這里給出完整的忽略證書的基于第三方http框架的拿來(lái)就用的Flutter項(xiàng)目網(wǎng)絡(luò)框架HttpUtils:

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

import 'dart:io';

import 'package:http/io_client.dart';

class HttpUtils {

static void get(String url, Function callback,

? ? ? {Map params, Function errorCallback})async {

if (params !=null && params.isNotEmpty) {

StringBuffer sb =new StringBuffer("?");

? ? ? params.forEach((key, value) {

sb.write("$key" +"=" +"$value" +"&");

? ? ? });

? ? ? String paramStr = sb.toString();

? ? ? paramStr = paramStr.substring(0, paramStr.length -1);

? ? ? url += paramStr;

? ? }

try {

var client =ignoreCertificateClient();

? ? ? http.Response res =await client.get(url);

? ? ? if (callback !=null) {

callback(res.body);

? ? ? }

}catch (exception) {

if (errorCallback !=null) {

errorCallback(exception);

? ? ? }

}

}

static void post(String url, Function callback,

? ? ? {Map params, Function errorCallback})async {

try {

var client =ignoreCertificateClient();

? ? ? http.Response res =await client.post(url, body: params);

? ? ? if (callback !=null) {

callback(res.body);

? ? ? }

}catch (e) {

if (errorCallback !=null) {

errorCallback(e);

? ? ? }

}

}

static bool_certificateCheck(X509Certificate cert, String host, int port) =>true;

? static IOClientignoreCertificateClient() {

var ioClient =new HttpClient()

..badCertificateCallback =_certificateCheck;

? ? return new IOClient(ioClient);

? }

}

使用方法一句代碼搞定:

HttpUtils.get('XXXXXXXXXXXXXXX.COM',(data){

if(data !=null){

final body = convert.jsonDecode(data.toString());

? ? logger.e(body.toString());

? }

});

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容