Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
F
flutter_clx_base
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
flutter_clx_base
Commits
5a8960f8
提交
5a8960f8
authored
6月 05, 2023
作者:
shixiaochen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、修改网络请求设置代理
上级
65ad0aa6
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
17 行增加
和
13 行删除
+17
-13
dio_widget_test.dart
example/lib/sample/dio_widget_test.dart
+0
-1
proxy.dart
lib/api/proxy.dart
+14
-11
flutter_clx_base.dart
lib/flutter_clx_base.dart
+3
-1
没有找到文件。
example/lib/sample/dio_widget_test.dart
浏览文件 @
5a8960f8
...
...
@@ -44,7 +44,6 @@ class _DioWidgetTestState extends State<DioWidgetTest> {
);
},
child:
const
Text
(
'dio请求'
)),
setProxyWidget
(
context
,
dio:
DioUtils
.
instance
.
dio
,
isProEnv:
false
)
],
);
}
...
...
lib/api/proxy.dart
浏览文件 @
5a8960f8
...
...
@@ -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
(
...
...
lib/flutter_clx_base.dart
浏览文件 @
5a8960f8
...
...
@@ -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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论