修复401报错
This commit is contained in:
@@ -194,6 +194,7 @@ public abstract class BaseActivity<T extends ViewBinding, P extends IPresenter>
|
|||||||
|
|
||||||
if (message.msg.equals(EventMessage.USER_LOGIN_LOST)) {
|
if (message.msg.equals(EventMessage.USER_LOGIN_LOST)) {
|
||||||
Log.d("DINGDING","Activity接收一次");
|
Log.d("DINGDING","Activity接收一次");
|
||||||
|
Log.d("DINGDING", "触发堆栈:", new Throwable("401触发堆栈追踪"));
|
||||||
Log.d("DINGDING", "当前Activity状态: isFinishing=" + isFinishing() + ", isDestroyed=" + isDestroyed());
|
Log.d("DINGDING", "当前Activity状态: isFinishing=" + isFinishing() + ", isDestroyed=" + isDestroyed());
|
||||||
|
|
||||||
// 检查Activity状态,如果正在销毁则不处理
|
// 检查Activity状态,如果正在销毁则不处理
|
||||||
|
|||||||
@@ -92,16 +92,22 @@ public class MineFragment extends BaseFragment<MineFragmentBinding, MinePresente
|
|||||||
goTo(mContext, LoginActivity.class, null);
|
goTo(mContext, LoginActivity.class, null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
new XPopup.Builder(mContext).asBottomList("头像", new String[]{"上传头像", "查看大图"}, new OnSelectListener() {
|
new XPopup.Builder(mContext).asBottomList(
|
||||||
|
getString(R.string.avatar),
|
||||||
|
new String[]{
|
||||||
|
getString(R.string.upload_avatar),
|
||||||
|
getString(R.string.view_full_image)}, new OnSelectListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSelect(int position, String text) {
|
public void onSelect(int position, String text) {
|
||||||
switch (position) {
|
switch (position) {
|
||||||
case 0:
|
case 0:
|
||||||
String readPermission = Manifest.permission.READ_EXTERNAL_STORAGE;
|
String readPermission = Manifest.permission.READ_EXTERNAL_STORAGE;
|
||||||
if (!hasRecordPermission(readPermission)) {
|
if (!hasRecordPermission(readPermission)) {
|
||||||
// 没有权限,只在ACTION_DOWN时去申请
|
// 没有权限,只在ACTION_DOWN时去申请+
|
||||||
getPermissionRequst(readPermission, "相机、文件访问权限申请",
|
getPermissionRequst(readPermission,
|
||||||
"星语明灯需要您的授权,获取文件访问权限来修改头像", REQUEST_CODE_100);
|
getString(R.string.request_camera_storage_permission),
|
||||||
|
getString(R.string.avatar_permission_tips),
|
||||||
|
REQUEST_CODE_100);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
imagePicker(1, REQUEST_CODE_100, MineFragment.this);
|
imagePicker(1, REQUEST_CODE_100, MineFragment.this);
|
||||||
|
|||||||
@@ -90,7 +90,11 @@ public class MineInfomationActivity extends BaseActivity<MineInformationLayoutBi
|
|||||||
|
|
||||||
case R.id.img_avatar:
|
case R.id.img_avatar:
|
||||||
case R.id.img_camera:
|
case R.id.img_camera:
|
||||||
new XPopup.Builder(mContext).asBottomList("选择头像", new String[]{"上传头像", "查看大图"}, new OnSelectListener() {
|
new XPopup.Builder(mContext).asBottomList(
|
||||||
|
getString(R.string.avatar),
|
||||||
|
new String[]{
|
||||||
|
getString(R.string.upload_avatar),
|
||||||
|
getString(R.string.view_full_image)}, new OnSelectListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSelect(int position, String text) {
|
public void onSelect(int position, String text) {
|
||||||
switch (position) {
|
switch (position) {
|
||||||
@@ -98,8 +102,10 @@ public class MineInfomationActivity extends BaseActivity<MineInformationLayoutBi
|
|||||||
String readPermission = Manifest.permission.READ_EXTERNAL_STORAGE;
|
String readPermission = Manifest.permission.READ_EXTERNAL_STORAGE;
|
||||||
if (!hasRecordPermission(readPermission)) {
|
if (!hasRecordPermission(readPermission)) {
|
||||||
// 没有权限,只在ACTION_DOWN时去申请
|
// 没有权限,只在ACTION_DOWN时去申请
|
||||||
getPermissionRequst(readPermission,"相册权限申请",
|
getPermissionRequst(readPermission,
|
||||||
"智能浇水需要您的授权,获取相册修改头像",REQUEST_EVENT_CODE_10001);
|
getString(R.string.request_camera_storage_permission),
|
||||||
|
getString(R.string.avatar_permission_tips),
|
||||||
|
REQUEST_EVENT_CODE_10001);
|
||||||
return;
|
return;
|
||||||
}else{
|
}else{
|
||||||
imagePicker(1,PICK_IMAGE_REQUEST_100);
|
imagePicker(1,PICK_IMAGE_REQUEST_100);
|
||||||
@@ -115,12 +121,13 @@ public class MineInfomationActivity extends BaseActivity<MineInformationLayoutBi
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.rl_nickname:
|
case R.id.rl_nickname:
|
||||||
showEditDialog("修改昵称",
|
showEditDialog(
|
||||||
"请输入昵称",
|
getString(R.string.edit_nickname),
|
||||||
|
getString(R.string.input_nickname),
|
||||||
mUserBean.getUser().getNickName(),
|
mUserBean.getUser().getNickName(),
|
||||||
true,
|
true,
|
||||||
"取消",
|
getString(R.string.cancel_text),
|
||||||
"确定",
|
getString(R.string.confirm_text),
|
||||||
INPUT_TYPE_NORMAL,
|
INPUT_TYPE_NORMAL,
|
||||||
new OnDialogClick() {
|
new OnDialogClick() {
|
||||||
@Override
|
@Override
|
||||||
@@ -202,26 +209,26 @@ public class MineInfomationActivity extends BaseActivity<MineInformationLayoutBi
|
|||||||
String fileName = file.getName();
|
String fileName = file.getName();
|
||||||
if (fileSizeInMB > 5) {
|
if (fileSizeInMB > 5) {
|
||||||
hideDialogLoading();
|
hideDialogLoading();
|
||||||
ToastUtil.showShort(mContext, "文件大小超出5M");
|
ToastUtil.showShort(mContext, getString(R.string.file_size_exceeds_5m));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!fileName.toLowerCase().endsWith(".png") &&
|
if (!fileName.toLowerCase().endsWith(".png") &&
|
||||||
!fileName.toLowerCase().endsWith(".jpg") &&
|
!fileName.toLowerCase().endsWith(".jpg") &&
|
||||||
!fileName.toLowerCase().endsWith(".jpeg")) {
|
!fileName.toLowerCase().endsWith(".jpeg")) {
|
||||||
ToastUtil.showShort(mContext, "文件格式不正确");
|
ToastUtil.showShort(mContext, getString(R.string.invalid_file_format));
|
||||||
hideDialogLoading();
|
hideDialogLoading();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
hideDialogLoading();
|
hideDialogLoading();
|
||||||
ToastUtil.showShort(mContext,"头像修改成功");
|
ToastUtil.showShort(mContext,getString(R.string.avatar_update_success));
|
||||||
|
|
||||||
Glide.with(mContext)
|
Glide.with(mContext)
|
||||||
.load(file)
|
.load(file)
|
||||||
.error(mContext.getDrawable(R.mipmap.icon_mine_user_head_defaul))
|
.error(mContext.getDrawable(R.mipmap.icon_mine_user_head_defaul))
|
||||||
.into(viewBinding.imgAvatar);
|
.into(viewBinding.imgAvatar);
|
||||||
} else {
|
} else {
|
||||||
ToastUtil.showShort(mContext, "文件不存在");
|
ToastUtil.showShort(mContext, getString(R.string.file_not_exist));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,8 +107,11 @@ public class SettingsActivity extends BaseActivity<ActivitySettingsLayoutBinding
|
|||||||
|
|
||||||
case R.id.tv_log_out:
|
case R.id.tv_log_out:
|
||||||
showDialogtext(mContext.getResources().getDrawable(R.mipmap.img_location), false, false,true,
|
showDialogtext(mContext.getResources().getDrawable(R.mipmap.img_location), false, false,true,
|
||||||
"提示", "确定要退出当前账号?",
|
getString(R.string.tip_text),
|
||||||
"取消", "确定", new BaseFragment.OnDialogClick() {
|
getString(R.string.logout_dialog_tips),
|
||||||
|
getString(R.string.cancel_text),
|
||||||
|
getString(R.string.confirm_text),
|
||||||
|
new BaseFragment.OnDialogClick() {
|
||||||
@Override
|
@Override
|
||||||
public void onCancelClick() {
|
public void onCancelClick() {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,6 +83,30 @@ public class NetWorkManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 响应拦截器:在 OkHttp 响应阶段直接捕获 HTTP 401/406/499 状态码,
|
||||||
|
* 同时打印请求 URL,方便定位触发登录过期弹窗的具体接口。
|
||||||
|
*/
|
||||||
|
class ResponseInterceptor implements Interceptor {
|
||||||
|
@Override
|
||||||
|
public Response intercept(Chain chain) throws IOException {
|
||||||
|
okhttp3.Request request = chain.request();
|
||||||
|
String requestUrl = request.url().toString();
|
||||||
|
String requestMethod = request.method();
|
||||||
|
|
||||||
|
okhttp3.Response response = chain.proceed(request);
|
||||||
|
|
||||||
|
int httpCode = response.code();
|
||||||
|
if (httpCode == 401 || httpCode == 406 || httpCode == 499) {
|
||||||
|
Log.e("TEST", "触发401拦截 → HTTP状态码=" + httpCode
|
||||||
|
+ " | 请求方法=" + requestMethod
|
||||||
|
+ " | 请求URL=" + requestUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化必要对象和参数
|
* 初始化必要对象和参数
|
||||||
*/
|
*/
|
||||||
@@ -101,10 +125,14 @@ public class NetWorkManager {
|
|||||||
Log.e("RetrofitLog", "retrofitBack=" + new Gson().toJson(jsonObject));
|
Log.e("RetrofitLog", "retrofitBack=" + new Gson().toJson(jsonObject));
|
||||||
String s = jsonObject.getString("code");
|
String s = jsonObject.getString("code");
|
||||||
if (s.equals("401")) {
|
if (s.equals("401")) {
|
||||||
|
Log.e("TEST", "触发401弹窗 → 业务code=401,响应体=" + jsonObject.toString());
|
||||||
|
Log.e("TEST", "401发送堆栈:", new Throwable("NetWorkManager发送401堆栈"));
|
||||||
EventBus.getDefault().post(new EventMessage(EventMessage.USER_LOGIN_LOST));
|
EventBus.getDefault().post(new EventMessage(EventMessage.USER_LOGIN_LOST));
|
||||||
} else if (s.equals("406")) {
|
} else if (s.equals("406")) {
|
||||||
|
|
||||||
}else if(s.equals("499")){
|
}else if(s.equals("499")){
|
||||||
|
Log.e("TEST", "触发499弹窗 → 业务code=499,响应体=" + jsonObject.toString());
|
||||||
|
Log.e("TEST", "499发送堆栈:", new Throwable("NetWorkManager发送499堆栈"));
|
||||||
EventBus.getDefault().post(new EventMessage(EventMessage.CODE_LOGIN_LOST));
|
EventBus.getDefault().post(new EventMessage(EventMessage.CODE_LOGIN_LOST));
|
||||||
|
|
||||||
// Activity activity = MyApplication.getCurrentActivity();
|
// Activity activity = MyApplication.getCurrentActivity();
|
||||||
@@ -131,6 +159,7 @@ public class NetWorkManager {
|
|||||||
// 初始化OkHttp
|
// 初始化OkHttp
|
||||||
OkHttpClient client = new OkHttpClient.Builder()
|
OkHttpClient client = new OkHttpClient.Builder()
|
||||||
.addInterceptor(loggingInterceptor) //添加网络拦截器
|
.addInterceptor(loggingInterceptor) //添加网络拦截器
|
||||||
|
.addInterceptor(new ResponseInterceptor()) // HTTP状态码401/406/499拦截
|
||||||
.addInterceptor(new HeaderInterceptor()) //添加网络拦截器
|
.addInterceptor(new HeaderInterceptor()) //添加网络拦截器
|
||||||
.connectTimeout(120, TimeUnit.SECONDS)// 连接超时时间
|
.connectTimeout(120, TimeUnit.SECONDS)// 连接超时时间
|
||||||
.readTimeout(120, TimeUnit.SECONDS) //读取超时
|
.readTimeout(120, TimeUnit.SECONDS) //读取超时
|
||||||
|
|||||||
@@ -177,6 +177,7 @@
|
|||||||
<string name="mine_psd_reset">Change Password</string>
|
<string name="mine_psd_reset">Change Password</string>
|
||||||
<string name="mine_find_psd">Forgot Password</string>
|
<string name="mine_find_psd">Forgot Password</string>
|
||||||
<string name="logout_tips">Sign out of your account</string>
|
<string name="logout_tips">Sign out of your account</string>
|
||||||
|
<string name="logout_dialog_tips">Are you sure you want to log out?</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="agree_user_policy">
|
<string name="agree_user_policy">
|
||||||
@@ -219,6 +220,29 @@
|
|||||||
<string name="theme_dark">Dark</string>
|
<string name="theme_dark">Dark</string>
|
||||||
<string name="press_again_to_exit">Press again to exit</string>
|
<string name="press_again_to_exit">Press again to exit</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 头像 -->
|
||||||
|
<string name="avatar">Avatar</string>
|
||||||
|
|
||||||
|
<!-- 上传头像 -->
|
||||||
|
<string name="upload_avatar">Upload Avatar</string>
|
||||||
|
|
||||||
|
<!-- 查看大图 -->
|
||||||
|
<string name="view_full_image">View Full Image</string>
|
||||||
|
|
||||||
|
<!-- 相机、文件访问权限申请 -->
|
||||||
|
<string name="request_camera_storage_permission">Camera File Access Permission</string>
|
||||||
|
|
||||||
|
<!-- 需要您的授权,获取文件访问权限来修改头像 -->
|
||||||
|
<string name="avatar_permission_tips">We need your permission to access files so you can change your avatar.</string>
|
||||||
|
<string name="edit_nickname">Edit Nickname</string>
|
||||||
|
<string name="input_nickname">Please enter a nickname</string>
|
||||||
|
|
||||||
|
<string name="file_size_exceeds_5m">File size exceeds 5 MB</string>
|
||||||
|
<string name="invalid_file_format">Invalid file format</string>
|
||||||
|
<string name="avatar_update_success">Avatar updated successfully</string>
|
||||||
|
<string name="file_not_exist">File does not exist</string>
|
||||||
|
|
||||||
<!-- End -->
|
<!-- End -->
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -166,6 +166,11 @@
|
|||||||
<string name="mine_psd_reset">重置密码</string>
|
<string name="mine_psd_reset">重置密码</string>
|
||||||
<string name="mine_find_psd">找回密码</string>
|
<string name="mine_find_psd">找回密码</string>
|
||||||
<string name="logout_tips">退出当前账号</string>
|
<string name="logout_tips">退出当前账号</string>
|
||||||
|
<string name="logout_dialog_tips">确定退出当前账号</string>
|
||||||
|
<string name="edit_nickname">修改昵称</string>
|
||||||
|
<string name="input_nickname">请输入昵称</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<string name="agree_user_policy">
|
<string name="agree_user_policy">
|
||||||
@@ -203,6 +208,28 @@
|
|||||||
|
|
||||||
<string name="press_again_to_exit">再按一次退出</string>
|
<string name="press_again_to_exit">再按一次退出</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 头像 -->
|
||||||
|
<string name="avatar">头像</string>
|
||||||
|
|
||||||
|
<!-- 上传头像 -->
|
||||||
|
<string name="upload_avatar">上传头像</string>
|
||||||
|
|
||||||
|
<!-- 查看大图 -->
|
||||||
|
<string name="view_full_image">查看大图</string>
|
||||||
|
|
||||||
|
<!-- 相机、文件访问权限申请 -->
|
||||||
|
<string name="request_camera_storage_permission">文件访问权限申请</string>
|
||||||
|
|
||||||
|
<!-- 需要您的授权,获取文件访问权限来修改头像 -->
|
||||||
|
<string name="avatar_permission_tips">需要您的授权,获取文件访问权限来修改头像</string>
|
||||||
|
|
||||||
|
<string name="file_size_exceeds_5m">文件大小超出5M</string>
|
||||||
|
<string name="invalid_file_format">文件格式不正确</string>
|
||||||
|
<string name="avatar_update_success">头像修改成功</string>
|
||||||
|
<string name="file_not_exist">文件不存在</string>
|
||||||
|
|
||||||
|
|
||||||
<!--结束-->
|
<!--结束-->
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user