Skip to content

Commit db58d1e

Browse files
committed
1.2.5
- 修复网络请求异常时可能引发的空指针异常问题;
1 parent 2578e5e commit db58d1e

File tree

7 files changed

+28
-10
lines changed

7 files changed

+28
-10
lines changed

BaseOkHttpX/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ android {
77
defaultConfig {
88
minSdk 21
99
versionCode 7
10-
versionName "1.2.4"
10+
versionName "1.2.5"
1111

1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
consumerProguardFiles "consumer-rules.pro"
@@ -23,7 +23,7 @@ android {
2323

2424
dependencies {
2525
implementation fileTree(dir: 'libs', include: ['*.jar'])
26-
compileOnly 'com.github.kongzue:BaseJson:1.2.9.6+'
26+
compileOnly 'com.github.kongzue:BaseJson:1.2.8+'
2727
compileOnly 'com.squareup.okhttp3:okhttp:4.9.1+'
2828
compileOnly 'androidx.appcompat:appcompat:1.3.0'
2929
}

BaseOkHttpX/src/main/java/com/kongzue/baseokhttp/x/interfaces/BitmapResponseListener.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ public abstract class BitmapResponseListener implements BaseResponseListener {
1717
@Override
1818
@Deprecated
1919
public void response(BaseHttpRequest httpRequest, ResponseBody responseBody, Exception error) {
20+
if (error != null) {
21+
response(httpRequest, Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888), error);
22+
return;
23+
}
2024
try {
2125
InputStream inputStream = responseBody.byteStream();
2226
response(httpRequest, BitmapFactory.decodeStream(inputStream), error);

BaseOkHttpX/src/main/java/com/kongzue/baseokhttp/x/interfaces/BytesResponseListener.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.kongzue.baseokhttp.x.interfaces;
22

3+
import android.graphics.Bitmap;
4+
35
import com.kongzue.baseokhttp.x.util.BaseHttpRequest;
46

57
import okhttp3.ResponseBody;
@@ -12,6 +14,10 @@ public abstract class BytesResponseListener implements BaseResponseListener {
1214
@Override
1315
@Deprecated
1416
public void response(BaseHttpRequest httpRequest, ResponseBody responseBody, Exception error) {
17+
if (error != null) {
18+
response(httpRequest, new byte[0], error);
19+
return;
20+
}
1521
try {
1622
byte[] data = responseBody.bytes();
1723
response(httpRequest, data, error);

BaseOkHttpX/src/main/java/com/kongzue/baseokhttp/x/interfaces/ResponseListener.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.kongzue.baseokhttp.x.interfaces;
22

3+
import android.graphics.Bitmap;
4+
35
import com.kongzue.baseokhttp.x.util.BaseHttpRequest;
46

57
import okhttp3.ResponseBody;
@@ -12,6 +14,10 @@ public abstract class ResponseListener implements BaseResponseListener {
1214
@Override
1315
@Deprecated
1416
public void response(BaseHttpRequest httpRequest, ResponseBody responseBody, Exception error) {
17+
if (error != null) {
18+
response(httpRequest, "", error);
19+
return;
20+
}
1521
try {
1622
String data = responseBody.string();
1723
response(httpRequest, data, error);

BaseOkHttpX/src/main/java/com/kongzue/baseokhttp/x/util/BaseHttpRequest.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public void go() {
182182
requestInfo = new RequestInfo(url, getRequestParameter());
183183
if (BaseOkHttpX.disallowSameRequest && equalsRequestInfo(requestInfo) != null) {
184184
LockLog.logE(TAG_RETURN, "拦截重复请求:" + requestInfo);
185-
onFail(new SameRequestException( requestInfo));
185+
onFail(new SameRequestException(requestInfo));
186186
return;
187187
}
188188
addRequestInfo(requestInfo);
@@ -366,14 +366,12 @@ public void run() {
366366
}
367367

368368
private void callCallbacks() {
369-
ResponseBody interceptRequestBody = ResponseBody.create(responseBytes, responseMediaType);
370369
if (BaseOkHttpX.responseInterceptListener != null &&
371-
BaseOkHttpX.responseInterceptListener.onIntercept(BaseHttpRequest.this, interceptRequestBody, responseException)) {
370+
BaseOkHttpX.responseInterceptListener.onIntercept(BaseHttpRequest.this, (responseBytes == null || responseMediaType == null) ? null : ResponseBody.create(responseBytes, responseMediaType), responseException)) {
372371
return;
373372
}
374373
for (BaseResponseListener callback : callbacks) {
375-
ResponseBody result = ResponseBody.create(responseBytes, responseMediaType);
376-
callback.response(BaseHttpRequest.this, result, responseException);
374+
callback.response(BaseHttpRequest.this, (responseBytes == null || responseMediaType == null) ? null :ResponseBody.create(responseBytes, responseMediaType), responseException);
377375
}
378376
}
379377

@@ -1081,7 +1079,6 @@ public void cancel() {
10811079

10821080
/**
10831081
* 重新发起请求。
1084-
*
10851082
*/
10861083
public void retry() {
10871084
cancel();

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ android {
99
minSdk 21
1010
targetSdk 31
1111
versionCode 7
12-
versionName "1.2.4"
12+
versionName "1.2.5"
1313

1414
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1515
}

app/src/main/java/com/kongzue/baseokhttpx/demo/MainActivity.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,13 @@ protected void onCreate(Bundle savedInstanceState) {
4545
binding = ActivityMainBinding.inflate(getLayoutInflater());
4646
setContentView(binding.getRoot());
4747

48+
// 设置总服务器地址
4849
BaseOkHttpX.serviceUrl = "https://api.apiopen.top/";
49-
BaseOkHttpX.reserveServiceUrls = new String[]{"https://api.apiopen2.top/", "https://api.apiopen3.top/", "https://api.apiopen4.top/"};
50+
51+
// 容灾地址测试
52+
//BaseOkHttpX.reserveServiceUrls = new String[]{"https://api.apiopen2.top/", "https://api.apiopen3.top/", "https://api.apiopen4.top/"};
53+
54+
// 全局参数测试
5055
//BaseOkHttpX.globalParameter = new Parameter().add("t1", "v1");
5156

5257
// 日志拦截器测试

0 commit comments

Comments
 (0)