package licola.demo.com.huabandemo.HttpUtils;
import java.io.IOException;
import licola.demo.com.huabandemo.API.OnProgressResponseListener;
import licola.demo.com.huabandemo.Util.Logger;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;
/**
* Created by LiCola on 2016/05/23 22:09
*/
public class OkHttpHelper {
private static ProgressBean progressBean = new ProgressBean();
private static ProgressHandler mProgressHandler;
public static OkHttpClient.Builder addLogClient(OkHttpClient.Builder builder) {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BASIC);
builder.addInterceptor(logging);
return builder;
}
public static OkHttpClient.Builder addProgressClient(OkHttpClient.Builder builder, OnProgressResponseListener listener) {
// OnProgressResponseListener listener=new OnProgressResponseListener() {
// @Override
// public void onResponseProgress(long bytesRead, long contentLength, boolean done) {
// if (mProgressHandler==null){
// return;
// }
// progressBean.setBytesRead(bytesRead);
// progressBean.setContentLength(contentLength);
// progressBean.setDone(done);
// mProgressHandler.sendMessage(progressBean);
// }
// };
builder.addNetworkInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Logger.d("start intercept");
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder().body(
new ProgressResponseBody(originalResponse.body(), listener))
.build();
}
});
return builder;
}
}