Skip to content

Commit 1fb2614

Browse files
committed
1、change json parse lib from Gson to FastJson
2、fix Gank api
1 parent d3b349b commit 1fb2614

File tree

16 files changed

+165
-205
lines changed

16 files changed

+165
-205
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ allprojects {
2525
Add the dependency
2626
``` groovy
2727
dependencies {
28-
implementation 'com.github.BakerJQ:RxRetroHttp:1.0.10'
28+
implementation 'com.github.BakerJQ:RxRetroHttp:1.0.11'
2929
}
3030
3131
```

README_cn.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ allprojects {
2626
在app或相应使用的module中加入
2727
``` groovy
2828
dependencies {
29-
implementation 'com.github.BakerJQ:RxRetroHttp:1.0.10'
29+
implementation 'com.github.BakerJQ:RxRetroHttp:1.0.11'
3030
}
3131
3232
```

app/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ android {
3838
dependencies {
3939
implementation fileTree(dir: 'libs', include: ['*.jar'])
4040
implementation 'androidx.appcompat:appcompat:1.1.0'
41-
implementation 'androidx.recyclerview:recyclerview:1.1.0-beta05'
42-
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
41+
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha03'
42+
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta6'
4343
testImplementation 'junit:junit:4.12'
4444
androidTestImplementation 'androidx.test:runner:1.2.0'
4545
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
@@ -48,6 +48,6 @@ dependencies {
4848
// implementation 'com.github.BakerJQ:RxRetroHttp:1.0.3'
4949
implementation 'com.github.bumptech.glide:glide:4.9.0'
5050
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
51-
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.38'
52-
implementation 'com.blankj:utilcode:1.23.7'
51+
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.50'
52+
implementation 'com.blankj:utilcode:1.27.3'
5353
}

app/src/main/java/com/bakerj/demo/rxretrohttp/APP.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public void onCreate() {
2121
.generateRetroClient()
2222

2323
.setApiResultClass(GankApiResult.class)//other result
24-
.setBaseUrl("http://gank.io/api/data/")//other url
24+
.setBaseUrl("http://gank.io/api/v2/data/")//other url
2525
.setDefaultErrMsg("Gank开小差了")
2626
.generateRetroClient("Gank")
2727

app/src/main/java/com/bakerj/demo/rxretrohttp/entity/gank/GankApiResult.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
import com.bakerj.rxretrohttp.bean.IApiResult;
44

55
public class GankApiResult<T> implements IApiResult<T> {
6-
private boolean error;
7-
private T results;
6+
private int status;
7+
private T data;
8+
89
@Override
910
public boolean isSuccess() {
10-
return !error;
11+
return status == 100;
1112
}
1213

1314
@Override
1415
public T getData() {
15-
return results;
16+
return data;
1617
}
1718

1819
@Override
@@ -27,22 +28,18 @@ public String getResultCode() {
2728

2829
@Override
2930
public String getDataField() {
30-
return "results";
31-
}
32-
33-
public boolean isError() {
34-
return error;
31+
return "data";
3532
}
3633

37-
public void setError(boolean error) {
38-
this.error = error;
34+
public int getStatus() {
35+
return status;
3936
}
4037

41-
public T getResults() {
42-
return results;
38+
public void setStatus(int status) {
39+
this.status = status;
4340
}
4441

45-
public void setResults(T results) {
46-
this.results = results;
42+
public void setData(T data) {
43+
this.data = data;
4744
}
4845
}

app/src/main/java/com/bakerj/demo/rxretrohttp/gank/GankApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010

1111
@RetroTag(tag = "Gank")
1212
public interface GankApi {
13-
@GET("福利/10/1")
13+
@GET("category/Girl/type/Girl/page/1/count/10")
1414
Observable<List<GankGirl>> getGankGirls();
1515
}

config.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ext {
22
versions = [
3-
'versionCode' : 10,
4-
'versionName' : '1.0.10',
3+
'versionCode' : 11,
4+
'versionName' : '1.0.11',
55

66
'compileSdk' : 28,
77
'buildTools' : '28.0.3',

rxretrohttp/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ android {
1818

1919
dependencies {
2020
implementation fileTree(dir: 'libs', include: ['*.jar'])
21-
api 'com.squareup.retrofit2:retrofit:2.4.0'
21+
api 'com.squareup.retrofit2:retrofit:2.8.1'
2222
api 'com.squareup.okhttp3:okhttp:4.0.0'
2323
api 'com.squareup.okhttp3:okhttp-urlconnection:3.11.0'
2424
api 'io.reactivex.rxjava2:rxjava:2.2.9'
2525
api 'io.reactivex.rxjava2:rxandroid:2.1.1'
26-
api 'com.squareup.retrofit2:converter-gson:2.4.0'
27-
api 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
26+
api 'com.alibaba:fastjson:1.1.71.android'
27+
api 'com.squareup.retrofit2:adapter-rxjava2:2.8.1'
2828
api 'com.trello.rxlifecycle3:rxlifecycle:3.0.0'
2929
api 'com.trello.rxlifecycle3:rxlifecycle-android:3.0.0'
3030
api 'com.trello.rxlifecycle3:rxlifecycle-components:3.0.0'

rxretrohttp/src/main/java/com/bakerj/rxretrohttp/client/BaseRetroClient.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package com.bakerj.rxretrohttp.client;
22

33
import com.bakerj.rxretrohttp.RxRetroHttp;
4-
import com.bakerj.rxretrohttp.converter.RetroGsonConverterFactory;
4+
import com.bakerj.rxretrohttp.converter.RetroJsonConverterFactory;
55
import com.bakerj.rxretrohttp.exception.ApiException;
66
import com.bakerj.rxretrohttp.exception.IExceptionHandler;
77
import com.bakerj.rxretrohttp.func.ExceptionHandleFunc;
88
import com.bakerj.rxretrohttp.func.RetryExceptionFunc;
99
import com.bakerj.rxretrohttp.interceptors.HttpLoggingInterceptor;
1010
import com.bakerj.rxretrohttp.util.RxSchedulerUtil;
1111
import com.facebook.stetho.okhttp3.StethoInterceptor;
12-
import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
1312

1413
import java.util.ArrayList;
1514
import java.util.List;
@@ -18,7 +17,7 @@
1817
import okhttp3.Interceptor;
1918
import okhttp3.OkHttpClient;
2019
import retrofit2.Retrofit;
21-
import retrofit2.converter.gson.GsonConverterFactory;
20+
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
2221

2322
/**
2423
* 抽象请求client
@@ -51,7 +50,8 @@ public BaseRetroClient() {
5150
mDefaultErrMsg = RxRetroHttp.getDefaultErrMsg();
5251
mExceptionHandler = RxRetroHttp.getExceptionHandler();
5352
if (mExceptionHandler == null) {
54-
mExceptionHandler = throwable -> ApiException.handleException(throwable, mDefaultErrMsg);
53+
mExceptionHandler = throwable -> ApiException.handleException(throwable,
54+
mDefaultErrMsg);
5555
}
5656
generateOkClient();
5757
generateRetrofit();
@@ -94,11 +94,11 @@ private void generateRetrofit() {
9494

9595
protected void setRetrofitBuilder(Retrofit.Builder retrofitBuilder) {
9696
if (RxRetroHttp.getApiResultClass() == null) {
97-
retrofitBuilder.addConverterFactory(GsonConverterFactory.create())
97+
retrofitBuilder.addConverterFactory(RetroJsonConverterFactory.create(null))
9898
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
9999
return;
100100
}
101-
retrofitBuilder.addConverterFactory(RetroGsonConverterFactory.create(RxRetroHttp
101+
retrofitBuilder.addConverterFactory(RetroJsonConverterFactory.create(RxRetroHttp
102102
.getApiResultClass())).addCallAdapterFactory(RxJava2CallAdapterFactory.create());
103103
}
104104

rxretrohttp/src/main/java/com/bakerj/rxretrohttp/converter/RetroGsonConverterFactory.java

Lines changed: 0 additions & 54 deletions
This file was deleted.

rxretrohttp/src/main/java/com/bakerj/rxretrohttp/converter/RetroGsonRequestBodyConverter.java

Lines changed: 0 additions & 41 deletions
This file was deleted.

rxretrohttp/src/main/java/com/bakerj/rxretrohttp/converter/RetroGsonResponseBodyConverter.java

Lines changed: 0 additions & 69 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.bakerj.rxretrohttp.converter;
2+
3+
import com.bakerj.rxretrohttp.bean.IApiResult;
4+
5+
import java.lang.annotation.Annotation;
6+
import java.lang.reflect.Type;
7+
8+
import okhttp3.RequestBody;
9+
import okhttp3.ResponseBody;
10+
import retrofit2.Converter;
11+
import retrofit2.Retrofit;
12+
13+
/**
14+
* Created by BakerJ on 2019/1/15
15+
*/
16+
public class RetroJsonConverterFactory<ApiResultType extends IApiResult> extends Converter.Factory {
17+
private Class<ApiResultType> apiClass;
18+
19+
private RetroJsonConverterFactory(Class<ApiResultType> apiClass) {
20+
this.apiClass = apiClass;
21+
}
22+
23+
public static <ApiResultType extends IApiResult> RetroJsonConverterFactory create(Class<ApiResultType> apiClass) {
24+
return new RetroJsonConverterFactory(apiClass);
25+
}
26+
27+
@Override
28+
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations,
29+
Retrofit retrofit) {
30+
return new RetroJsonResponseBodyConverter<>(type, apiClass);
31+
}
32+
33+
@Override
34+
public Converter<?, RequestBody> requestBodyConverter(Type type,
35+
Annotation[] parameterAnnotations,
36+
Annotation[] methodAnnotations,
37+
Retrofit retrofit) {
38+
return new RetroJsonRequestBodyConverter<>();
39+
}
40+
}

0 commit comments

Comments
 (0)