Skip to content

Commit

Permalink
* 代码优化
Browse files Browse the repository at this point in the history
  • Loading branch information
wengyijiong committed Sep 10, 2019
1 parent 63261d9 commit d010981
Show file tree
Hide file tree
Showing 13 changed files with 328 additions and 184 deletions.
245 changes: 181 additions & 64 deletions RxHttp/src/main/java/com/github/eajon/RxHttp.java

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.github.eajon.enums.RequestMethod;
import com.github.eajon.exception.HttpMethodException;
import com.github.eajon.model.RequestEntity;
import com.github.eajon.util.NetUtils;
import com.github.eajon.util.EncodeUtils;

import java.io.IOException;
import java.util.Map;
Expand Down Expand Up @@ -77,7 +77,7 @@ public Response intercept(Interceptor.Chain chain) throws IOException {
.url(urlBuilder.build());
if (header != null && header.keySet().size() > 0) {
for (String key : header.keySet()) {
newRequestBuilder.addHeader(key, NetUtils.getHeaderValueEncoded(header.get(key)).toString());
newRequestBuilder.addHeader(key, EncodeUtils.getHeaderValueEncoded(header.get(key)).toString());
}
}
return chain.proceed(newRequestBuilder.build());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.concurrent.TimeUnit;

/**
* MultiPart upload
* @author eajon
*/
public class MultiUploadTask extends BaseTask implements Serializable {
Expand All @@ -23,6 +24,11 @@ public MultiUploadTask(ArrayList<UploadTask> uploadTasks) {
this.uploadTasks = uploadTasks;
}

public MultiUploadTask(UploadTask uploadTask) {
this.uploadTasks = new ArrayList<>();
this.uploadTasks.add(uploadTask);
}

public ArrayList<UploadTask> getUploadTasks() {
return uploadTasks;
}
Expand Down
2 changes: 2 additions & 0 deletions RxHttp/src/main/java/com/github/eajon/task/UploadTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import java.util.concurrent.TimeUnit;

/**
*
* OctStream upload
* @author eajon
*/
public class UploadTask extends BaseTask implements Serializable {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,36 +10,7 @@
/**
* @author eajon
*/
public class NetUtils {


/**
* 获取活动网络信息
*
* @return NetworkInfo
*/
public static NetworkInfo getNetworkInfo(Context context) {
ConnectivityManager cm;
try {
cm = ( ConnectivityManager ) context.getApplicationContext()
.getSystemService(Context.CONNECTIVITY_SERVICE);
} catch (Exception e) {
return null;
}

return cm.getActiveNetworkInfo();
}


/**
* 网络是否可用
*
* @return
*/
public static boolean isAvailable(Context context) {
NetworkInfo info = getNetworkInfo(context);
return info != null && info.isAvailable();
}
public class EncodeUtils {

/**
* 获取 encode 后 Header 值
Expand Down
35 changes: 14 additions & 21 deletions RxHttp/src/main/java/com/github/eajon/util/GsonUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,43 +33,36 @@ private GsonUtils() {
throw new AssertionError("");
}

private static Gson gson;
private final static Gson GSON = new GsonBuilder().
registerTypeAdapter(Double.class, new JsonSerializer<Double>() {
@Override
public JsonElement serialize(Double src, Type typeOfSrc, JsonSerializationContext context) {
if (src == src.longValue()) {
return new JsonPrimitive(src.longValue());
}
return new JsonPrimitive(src);
}
}).create();

public static Gson getGson() {
if (gson == null) {
synchronized (GsonUtils.class) {
if (gson == null) {
gson = new GsonBuilder().
registerTypeAdapter(Double.class, new JsonSerializer<Double>() {
@Override
public JsonElement serialize(Double src, Type typeOfSrc, JsonSerializationContext context) {
if (src == src.longValue()) {
return new JsonPrimitive(src.longValue());
}
return new JsonPrimitive(src);
}
}).create();
}
}
}
return gson;
return GSON;
}

public static Gson buildGson(Object object) {
private static Gson buildGson(Object object) {
return new GsonBuilder()
.registerTypeAdapter(
new TypeToken<Map<String, String>>() {
}.getType(),
new MapJsonDeserializer(object)).create();
}

public static Map<String, Object> objectToMap(Object object) {
public static Map<String, Object> object2Map(Object object) {
Gson gson = buildGson(object);
return gson.fromJson(gson.toJson(object), new TypeToken<Map<String, String>>() {
}.getType());
}

private static class MapJsonDeserializer implements JsonDeserializer<Map<String, Object>> {
private final static class MapJsonDeserializer implements JsonDeserializer<Map<String, Object>> {

private Object object;

Expand Down
13 changes: 2 additions & 11 deletions RxHttp/src/main/java/com/github/eajon/util/JacksonUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,15 @@

public class JacksonUtils {

private volatile static ObjectMapper mapper;
private final static ObjectMapper OBJECT_MAPPER = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

private JacksonUtils() {
throw new AssertionError("");
}


public static ObjectMapper getMapper() {
if (mapper == null) {
synchronized (JacksonUtils.class) {
if (mapper == null) {
mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
}
}
}
return mapper;
return OBJECT_MAPPER;
}

public static JsonFactory getFactory() {
Expand Down
49 changes: 18 additions & 31 deletions RxHttp/src/main/java/com/github/eajon/util/OkHttpUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,44 +16,31 @@ public class OkHttpUtils {
private OkHttpUtils() {
throw new AssertionError();
}

private static HttpRequestInterceptor httpRequestInterceptor;

public static HttpRequestInterceptor getHttpRequestInterceptor() {
if (httpRequestInterceptor == null) {
synchronized (OkHttpUtils.class) {
if (httpRequestInterceptor == null) {
httpRequestInterceptor = new HttpRequestInterceptor();
}
}
}
return httpRequestInterceptor;
}
/**
* 内置HttpRequestInterceptor
*/
private final static HttpRequestInterceptor HTTP_REQUEST_INTERCEPTOR = new HttpRequestInterceptor();

/**
* 默认httpclient
*/
private static OkHttpClient httpClient;
private final static OkHttpClient HTTP_CLIENT = new OkHttpClient.Builder()
.addInterceptor(HTTP_REQUEST_INTERCEPTOR)
.addNetworkInterceptor(new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
LoggerUtils.info(message);
}
})
.setLevel(HttpLoggingInterceptor.Level.BASIC))
.build();


public static HttpRequestInterceptor getHttpRequestInterceptor() {
return HTTP_REQUEST_INTERCEPTOR;
}
public static OkHttpClient getOkHttpClient() {
if (httpClient == null) {
synchronized (OkHttpUtils.class) {
if (httpClient == null) {
httpClient = new OkHttpClient.Builder()
.addInterceptor(httpRequestInterceptor)
.addNetworkInterceptor(new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
LoggerUtils.info(message);
}
})
.setLevel(HttpLoggingInterceptor.Level.BASIC))
.build();
}
}
}
return httpClient;
return HTTP_CLIENT;
}

/**
Expand Down
7 changes: 2 additions & 5 deletions app/src/main/java/com/eajon/my/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,17 @@
import android.app.Application;
import android.content.Context;

import com.bumptech.glide.Glide;
import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader;
import com.bumptech.glide.load.model.GlideUrl;
import com.eajon.my.util.NetUtils;
import com.franmontiel.persistentcookiejar.ClearableCookieJar;
import com.franmontiel.persistentcookiejar.PersistentCookieJar;
import com.franmontiel.persistentcookiejar.cache.SetCookieCache;
import com.franmontiel.persistentcookiejar.persistence.SharedPrefsCookiePersistor;
import com.github.eajon.RxHttp;
import com.github.eajon.enums.ConverterType;
import com.github.eajon.util.LoggerUtils;
import com.github.eajon.util.NetUtils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;

import okhttp3.Interceptor;
Expand Down Expand Up @@ -102,4 +98,5 @@ protected void attachBaseContext(Context base) {
public static App getContext() {
return instance;
}

}
Loading

0 comments on commit d010981

Please sign in to comment.