Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
F
flutter_clx_base
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
flutter_clx_base
Commits
d67a4041
提交
d67a4041
authored
7月 21, 2023
作者:
shixiaochen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、优化BaseDio(设置代理功能)
上级
f3ec6f92
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
18 行增加
和
9 行删除
+18
-9
scroll_view.dart
example/lib/sample/scroll_view.dart
+1
-1
base_dio.dart
lib/api/base_dio.dart
+13
-4
proxy.dart
lib/api/proxy.dart
+4
-4
没有找到文件。
example/lib/sample/scroll_view.dart
浏览文件 @
d67a4041
...
@@ -27,7 +27,7 @@ class _ScrollViewPageState extends State<ScrollViewPage> {
...
@@ -27,7 +27,7 @@ class _ScrollViewPageState extends State<ScrollViewPage> {
ToastUtil
.
showToast
(
"点击按钮"
);
ToastUtil
.
showToast
(
"点击按钮"
);
},
},
text:
'点击按钮'
),
text:
'点击按钮'
),
SizedBox
(
height:
500
),
const
SizedBox
(
height:
500
),
TextField
(
focusNode:
focusNode2
),
TextField
(
focusNode:
focusNode2
),
],
],
),
),
...
...
lib/api/base_dio.dart
浏览文件 @
d67a4041
import
'package:dio/dio.dart'
;
import
'package:dio/dio.dart'
;
import
'package:dio/io.dart'
;
import
'package:dio/io.dart'
;
import
'package:flutter_clx_base/api/base_entity.dart'
;
import
'package:flutter_clx_base/api/base_entity.dart'
;
import
'package:flutter_clx_base/api/proxy.dart'
;
import
'package:flutter_clx_base/api/transformer.dart'
;
import
'package:flutter_clx_base/api/transformer.dart'
;
import
'package:flutter_clx_base/utils/log_utils.dart'
;
import
'package:flutter_clx_base/utils/log_utils.dart'
;
import
'package:flutter_clx_base/utils/toast_util.dart'
;
import
'package:flutter_clx_base/utils/toast_util.dart'
;
...
@@ -31,13 +32,17 @@ abstract class BaseDio {
...
@@ -31,13 +32,17 @@ abstract class BaseDio {
dio
.
interceptors
.
add
(
getHeadersInterceptor
());
dio
.
interceptors
.
add
(
getHeadersInterceptor
());
dio
.
interceptors
.
add
(
getLogInterceptor
());
dio
.
interceptors
.
add
(
getLogInterceptor
());
//配置代理
//配置代理
dio
.
httpClientAdapter
=
setProxy
(
);
setProxyUri
(
dio
,
isSetProxy
()
);
}
}
String
setBaseUrl
();
String
setBaseUrl
();
// 设置请求头拦截器
// 设置请求头拦截器
Interceptor
getHeadersInterceptor
();
Interceptor
getHeadersInterceptor
();
// 是否设置代理
bool
isSetProxy
()
=>
false
;
// 设置log拦截器
// 设置log拦截器
Interceptor
getLogInterceptor
()
=>
_setLogInterceptor
();
Interceptor
getLogInterceptor
()
=>
_setLogInterceptor
();
...
@@ -52,7 +57,9 @@ abstract class BaseDio {
...
@@ -52,7 +57,9 @@ abstract class BaseDio {
void
onLoginExpire
()
=>
_onLoginExpire
();
void
onLoginExpire
()
=>
_onLoginExpire
();
Future
<
void
>
onNetSuccess
(
Response
response
,
NetSuccessCallback
successCallback
,
Future
<
void
>
onNetSuccess
(
Response
response
,
NetSuccessCallback
successCallback
,
NetErrorCallback
?
errorCallback
)
async
=>
NetErrorCallback
?
errorCallback
)
async
=>
await
_onNetSuccess
(
response
,
successCallback
,
errorCallback
);
await
_onNetSuccess
(
response
,
successCallback
,
errorCallback
);
...
@@ -97,7 +104,7 @@ abstract class BaseDio {
...
@@ -97,7 +104,7 @@ abstract class BaseDio {
options:
_checkOptions
(
method
.
value
,
options
),
options:
_checkOptions
(
method
.
value
,
options
),
);
);
await
onNetSuccess
(
response
,
successCallback
,
errorCallback
);
await
onNetSuccess
(
response
,
successCallback
,
errorCallback
);
}
on
DioE
rror
catch
(
e
)
{
}
on
DioE
xception
catch
(
e
)
{
if
(
e
.
response
!=
null
)
{
if
(
e
.
response
!=
null
)
{
logger
.
e
(
logger
.
e
(
"请求错误:
${e.response!.statusCode}
${e.response!.requestOptions.path}
"
);
"请求错误:
${e.response!.statusCode}
${e.response!.requestOptions.path}
"
);
...
@@ -110,7 +117,9 @@ abstract class BaseDio {
...
@@ -110,7 +117,9 @@ abstract class BaseDio {
}
}
// 处理网络请求成功逻辑
// 处理网络请求成功逻辑
Future
<
void
>
_onNetSuccess
(
Response
response
,
NetSuccessCallback
successCallback
,
Future
<
void
>
_onNetSuccess
(
Response
response
,
NetSuccessCallback
successCallback
,
NetErrorCallback
?
errorCallback
)
async
{
NetErrorCallback
?
errorCallback
)
async
{
BaseEntity
baseEntity
=
BaseEntity
.
fromJson
(
response
.
data
);
BaseEntity
baseEntity
=
BaseEntity
.
fromJson
(
response
.
data
);
if
(
baseEntity
.
code
==
100
||
baseEntity
.
code
==
"100"
)
{
if
(
baseEntity
.
code
==
100
||
baseEntity
.
code
==
"100"
)
{
...
...
lib/api/proxy.dart
浏览文件 @
d67a4041
...
@@ -11,14 +11,14 @@ const spSwitchProxy = "switchProxy"; // 开关代理
...
@@ -11,14 +11,14 @@ const spSwitchProxy = "switchProxy"; // 开关代理
bool
setProxyFlag
=
false
;
// 设置代理标识 true 设置 false 不设置
bool
setProxyFlag
=
false
;
// 设置代理标识 true 设置 false 不设置
/// dio 设置代理uri
/// dio 设置代理uri
void
setProxyUri
(
Dio
?
dio
,
bool
is
ProEnv
)
{
void
setProxyUri
(
Dio
?
dio
,
bool
is
SetProxy
)
{
setProxyFlag
=
!
is
ProEnv
;
//生产环境不设置代理
setProxyFlag
=
!
is
SetProxy
;
//生产环境不设置代理
if
(!
setProxyFlag
)
return
;
if
(!
setProxyFlag
)
return
;
String
?
proxyIP
=
SpUtil
.
getString
(
spProxyIp
);
String
?
proxyIP
=
SpUtil
.
getString
(
spProxyIp
);
String
?
proxyPort
=
SpUtil
.
getString
(
spProxyPort
);
String
?
proxyPort
=
SpUtil
.
getString
(
spProxyPort
);
(
dio
?.
httpClientAdapter
as
IOHttpClientAdapter
?)?.
onHttpClientCreate
=
(
dio
?.
httpClientAdapter
as
IOHttpClientAdapter
?)?.
createHttpClient
=
()
{
(
HttpClient
client
)
{
HttpClient
client
=
HttpClient
();
// 是否设置代理:非生产环境,开启代理后,设置代理
// 是否设置代理:非生产环境,开启代理后,设置代理
bool
isSetProxy
=
setProxyFlag
&&
bool
isSetProxy
=
setProxyFlag
&&
proxyIP
!=
null
&&
proxyIP
!=
null
&&
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论