From bf5729bbd51eeb83ebde68c1eaec98a26b9c0ee0 Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Mon, 18 Jan 2021 05:30:30 +0000
Subject: [PATCH] retrofit 网络请求失败打印修复,返回数据过多导致打印丢失问题
---
app/src/main/java/com/runt/sharedcode/utils/PrintLogUtils.java | 11 ++++-------
app/src/main/java/com/runt/sharedcode/utils/HttpLoggingInterceptor.java | 17 ++++++++++-------
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/app/src/main/java/com/runt/sharedcode/utils/HttpLoggingInterceptor.java b/app/src/main/java/com/runt/sharedcode/utils/HttpLoggingInterceptor.java
index 48165e3..29846f3 100644
--- a/app/src/main/java/com/runt/sharedcode/utils/HttpLoggingInterceptor.java
+++ b/app/src/main/java/com/runt/sharedcode/utils/HttpLoggingInterceptor.java
@@ -113,7 +113,13 @@
response = chain.proceed(request);
} catch (Exception e) {
logArrays.add("<-- HTTP FAILED: " + e);
- throw e;
+ new Thread() {
+ @Override
+ public void run() {
+ printLog(logArrays,false);//线程安全方法,需在新线程执行,避免阻塞当前线程,导致程序无响应
+ }
+ }.start();
+ throw e;//抛出异常,用于请求接收信息
}
long tookMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNs);
@@ -153,12 +159,9 @@
logArrays.add("<-- END HTTP (" + buffer.size() + "-byte body)");
}
- new Thread(){
- @Override
- public void run() {
- printLog(logArrays);//线程安全方法,需在新线程执行,避免阻塞当前线程,导致程序无响应
- }
- }.start();
+ new Thread(() -> {
+ printLog(logArrays);//线程安全方法,需在新线程执行,避免阻塞当前线程,导致程序无响应
+ }).start();
return response;
}
diff --git a/app/src/main/java/com/runt/sharedcode/utils/PrintLogUtils.java b/app/src/main/java/com/runt/sharedcode/utils/PrintLogUtils.java
index c305354..e80a697 100644
--- a/app/src/main/java/com/runt/sharedcode/utils/PrintLogUtils.java
+++ b/app/src/main/java/com/runt/sharedcode/utils/PrintLogUtils.java
@@ -70,13 +70,10 @@
sb.append("┗"+getEmptyStr((length-end.length())/2,"━")+end+getEmptyStr((length-end.length())/2,"━")+"┛\n");
sb.append(" \n\n\n");
//Logger.DEFAULT.log(sb.toString());//打印log,避免多个log语句,导致log输出时其他线程的log输出切入此输出阵列内
- String[] split = sb.toString().split("\n");
- for(String str : split){
- if(info) {
- Log.i(TAG, str);
- }else{
- Log.e(TAG, str);
- }
+ if(info) {
+ Log.i(TAG, sb.toString());
+ }else{
+ Log.e(TAG, sb.toString());
}
}
--
Gitblit v1.9.1