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