Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
book-app
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
book-app
Commits
a5222045
提交
a5222045
authored
3月 04, 2024
作者:
yueweilu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
缓存key 问题
上级
f1271eae
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
14 行增加
和
11 行删除
+14
-11
http.dart
lib/services/http.dart
+14
-11
没有找到文件。
lib/services/http.dart
浏览文件 @
a5222045
...
@@ -38,9 +38,11 @@ class HttpService extends GetxService {
...
@@ -38,9 +38,11 @@ class HttpService extends GetxService {
}
else
{
}
else
{
headers
[
'Authorization'
]
=
''
;
headers
[
'Authorization'
]
=
''
;
}
}
Map
<
String
,
dynamic
>?
tempParams
=
{};
if
(
params
!=
null
)
{
if
(
params
!=
null
)
{
params
.
addAll
(
headers
);
tempParams
.
addAll
(
params
);
headers
[
'Sign'
]
=
SignTool
.
createSign
(
params
!);
tempParams
.
addAll
(
headers
);
headers
[
'Sign'
]
=
SignTool
.
createSign
(
tempParams
);
}
}
else
{
else
{
headers
[
'Sign'
]
=
SignTool
.
createSign
(
headers
);
headers
[
'Sign'
]
=
SignTool
.
createSign
(
headers
);
...
@@ -57,7 +59,7 @@ class HttpService extends GetxService {
...
@@ -57,7 +59,7 @@ class HttpService extends GetxService {
CancelToken
?
cancelToken
,
CancelToken
?
cancelToken
,
bool
excludeToken
=
false
,
bool
excludeToken
=
false
,
bool
showLoading
=
false
,
bool
showLoading
=
false
,
bool
cacheEnabled
=
fals
e
,
bool
cacheEnabled
=
tru
e
,
})
async
{
})
async
{
if
(
showLoading
)
CustomToast
.
loading
();
if
(
showLoading
)
CustomToast
.
loading
();
try
{
try
{
...
@@ -235,13 +237,13 @@ class _RequestInterceptor extends Interceptor {
...
@@ -235,13 +237,13 @@ class _RequestInterceptor extends Interceptor {
case
DioExceptionType
.
badResponse
:
case
DioExceptionType
.
badResponse
:
final
response
=
err
.
response
;
final
response
=
err
.
response
;
final
statusCode
=
response
?.
statusCode
;
final
statusCode
=
response
?.
statusCode
;
print
(
'*************
${response?.data}
'
);
Console
.
log
(
'*************
${response?.data}
'
);
print
(
'******statusCode*******
$statusCode
'
);
Console
.
log
(
'******statusCode*******
$statusCode
'
);
// Console.log(response?.data);
// Console.log(response?.data);
var
msg
=
'服务器错误'
;
var
msg
=
'服务器错误'
;
switch
(
statusCode
)
{
switch
(
statusCode
)
{
case
403
:
case
403
:
print
(
'----------403---------access_token-------------------------
${UserStore.to.accessToken}
--------------------'
);
Console
.
log
(
'----------403---------access_token-------------------------
${UserStore.to.accessToken}
--------------------'
);
msg
=
'
$statusCode
- Unauthorized'
;
msg
=
'
$statusCode
- Unauthorized'
;
final
newToken
=
await
refreshToken
();
final
newToken
=
await
refreshToken
();
if
(
newToken
!=
null
)
{
if
(
newToken
!=
null
)
{
...
@@ -269,7 +271,7 @@ class _RequestInterceptor extends Interceptor {
...
@@ -269,7 +271,7 @@ class _RequestInterceptor extends Interceptor {
}
else
{
}
else
{
UserStore
.
to
.
logout
();
UserStore
.
to
.
logout
();
CustomToast
.
fail
(
'登录已失效,请重新登录'
);
CustomToast
.
fail
(
'登录已失效,请重新登录'
);
print
(
'-------------------access_token-------------------------
${UserStore.to.accessToken}
--------------------'
);
Console
.
log
(
'-------------------access_token-------------------------
${UserStore.to.accessToken}
--------------------'
);
}
}
break
;
break
;
...
@@ -337,13 +339,14 @@ class _CacheInterceptor extends Interceptor {
...
@@ -337,13 +339,14 @@ class _CacheInterceptor extends Interceptor {
@override
@override
void
onRequest
(
RequestOptions
options
,
RequestInterceptorHandler
handler
)
async
{
void
onRequest
(
RequestOptions
options
,
RequestInterceptorHandler
handler
)
async
{
final
cacheEnabled
=
options
.
extra
?
[
'cacheEnabled'
]
??
false
;
final
cacheEnabled
=
options
.
extra
[
'cacheEnabled'
]
??
false
;
final
status
=
await
Tools
.
checkCurrentNetStatus
();
final
status
=
await
Tools
.
checkCurrentNetStatus
();
if
(
cacheEnabled
&&
!
status
)
{
if
(
cacheEnabled
&&
!
status
)
{
// 在发起请求之前,检查缓存是否存在有效数据
// 在发起请求之前,检查缓存是否存在有效数据
final
cachedFile
=
await
DefaultCacheManager
().
getFileFromCache
(
options
.
uri
.
toString
());
String
cacheKey
=
options
.
data
.
isEmpty
?
options
.
uri
.
toString
()
:
'
${options.uri.toString()}
?
${options.data}
'
;
final
cachedFile
=
await
DefaultCacheManager
().
getFileFromCache
(
cacheKey
);
if
(
cachedFile
!=
null
&&
cachedFile
.
validTill
.
isAfter
(
DateTime
.
now
()))
{
if
(
cachedFile
!=
null
&&
cachedFile
.
validTill
.
isAfter
(
DateTime
.
now
()))
{
Console
.
log
(
'-
-------------使用缓存数据-----------------
-'
);
Console
.
log
(
'-
获取数据cachedFile------------------------------
$cachedFile
-'
);
// 如果缓存有效,直接返回缓存数据
// 如果缓存有效,直接返回缓存数据
final
cachedData
=
await
cachedFile
.
file
.
readAsBytes
();
final
cachedData
=
await
cachedFile
.
file
.
readAsBytes
();
final
decodedData
=
utf8
.
decode
(
cachedData
);
// 将字节列表解码为字符串
final
decodedData
=
utf8
.
decode
(
cachedData
);
// 将字节列表解码为字符串
...
@@ -371,7 +374,7 @@ class _CacheInterceptor extends Interceptor {
...
@@ -371,7 +374,7 @@ class _CacheInterceptor extends Interceptor {
final
requestBody
=
response
.
requestOptions
.
data
.
toString
();
final
requestBody
=
response
.
requestOptions
.
data
.
toString
();
// 将 GET 请求的参数和请求体参数拼接成缓存的键
// 将 GET 请求的参数和请求体参数拼接成缓存的键
final
cacheKey
=
requestBody
.
isEmpty
?
url
:
'
$url
?
$requestBody
'
;
final
cacheKey
=
requestBody
.
isEmpty
?
url
:
'
$url
?
$requestBody
'
;
//
Console.log('----------cacheKey-----------------------$cacheKey');
Console
.
log
(
'----------cacheKey-----------------------
$cacheKey
'
);
// 将响应数据转换为字符串,并将其编码为字节列表
// 将响应数据转换为字符串,并将其编码为字节列表
List
<
int
>
bytes
=
utf8
.
encode
(
jsonEncode
(
response
.
data
));
List
<
int
>
bytes
=
utf8
.
encode
(
jsonEncode
(
response
.
data
));
Uint8List
uint8List
=
Uint8List
.
fromList
(
bytes
);
Uint8List
uint8List
=
Uint8List
.
fromList
(
bytes
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论