提交 5a8960f8 authored 作者: shixiaochen's avatar shixiaochen

1、修改网络请求设置代理

上级 65ad0aa6
......@@ -44,7 +44,6 @@ class _DioWidgetTestState extends State<DioWidgetTest> {
);
},
child: const Text('dio请求')),
setProxyWidget(context, dio: DioUtils.instance.dio, isProEnv: false)
],
);
}
......
......@@ -8,37 +8,40 @@ import 'base_dio.dart';
const spProxyIp = "proxyIP"; // ip
const spProxyPort = "proxyPort"; // port
const spSwitchProxy = "switchProxy"; // 开关代理
bool setProxyFlag = false; // 设置代理标识 true 设置 false 不设置
/// dio 设置代理uri
void setProxyUri(Dio? dio, bool isProEnv) {
setProxyFlag = isProEnv;
if (!setProxyFlag) return; //生产环境不设置代理
String? proxyIP = SpUtil.getString(spProxyIp);
String? proxyPort = SpUtil.getString(spProxyPort);
(dio?.httpClientAdapter as IOHttpClientAdapter?)?.onHttpClientCreate =
(HttpClient client) {
// 是否设置代理:非生产环境,开启代理后,设置代理
bool isSetProxy = !isProEnv &&
bool isSetProxy = setProxyFlag &&
proxyIP != null &&
proxyIP.isNotEmpty &&
proxyPort != null &&
proxyPort.isNotEmpty &&
SpUtil.getBool(spSwitchProxy) == true;
client.findProxy =
(uri) => isSetProxy ? "PROXY $proxyIP:$proxyPort" : "DIRECT";
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
if (isSetProxy) {
client.findProxy = (uri) => "PROXY $proxyIP:$proxyPort";
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
}
return client;
};
}
/// 设置代理widget
/// isProEnv 是否是生产环境,生产环境禁止抓包
setProxyWidget(context, {required Dio? dio, required bool isProEnv}) {
logger.d("===== isProEnv = $isProEnv");
return (isProEnv)
setProxyWidget(context) {
return (!setProxyFlag)
? Container()
: InkWell(
onTap: () => setProxyDialog(context, dio, isProEnv),
onTap: () => setProxyDialog(context),
child: Container(
height: 50.0,
padding: const EdgeInsets.only(left: 15.0, right: 15.0),
......@@ -60,7 +63,7 @@ var ipController = TextEditingController();
var portController = TextEditingController();
/// 设置代理dialog
setProxyDialog(context, dio, isProEnv) {
setProxyDialog(context) {
ipController.text = SpUtil.getString(spProxyIp) ?? "";
portController.text = SpUtil.getString(spProxyPort) ?? "";
showDialog(
......@@ -100,7 +103,7 @@ setProxyDialog(context, dio, isProEnv) {
spProxyIp, ipController.value.text.toString().trim());
SpUtil.putString(
spProxyPort, portController.value.text.toString().trim());
setProxyUri(dio, isProEnv);
exit(0);
},
child: Container(
margin: const EdgeInsets.only(
......
......@@ -8,6 +8,7 @@ export 'package:getwidget/getwidget.dart';
export 'package:package_info_plus/package_info_plus.dart';
export 'package:sp_util/sp_util.dart';
export 'api/proxy.dart';
export 'common/extension.dart';
export 'common/gaps.dart';
export 'utils/common_utils.dart';
......@@ -22,4 +23,4 @@ export 'widget/my_app_bar.dart';
export 'widget/my_scaffold.dart';
export 'widget/my_scroll_view.dart';
export 'widget/my_subclass_list_public.dart';
export 'widget/search_app_bar.dart';
export 'widget/search_app_bar.dart';
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论