网络请求框架
package com. example. net;
import com. example. net. constants. Constants;
import java. util. concurrent. TimeUnit;
import okhttp3. OkHttpClient;
import okhttp3. logging. HttpLoggingInterceptor;
import retrofit2. Retrofit;
import retrofit2. adapter. rxjava2. RxJava2CallAdapterFactory;
import retrofit2. converter. gson. GsonConverterFactory;
public class RetrofitCreator {
private static FiannceApiService fiannceApiService;
public static FiannceApiService getFiannceApiService ( ) {
if ( fiannceApiService == null ) {
fiannceApiService = createKSApiService ( ) ;
}
return fiannceApiService;
}
private static FiannceApiService createKSApiService ( ) {
OkHttpClient okHttpClient = new OkHttpClient. Builder ( )
. connectTimeout ( 15 , TimeUnit. SECONDS )
. readTimeout ( 15 , TimeUnit. SECONDS )
. writeTimeout ( 15 , TimeUnit. SECONDS )
. addInterceptor ( new HttpLoggingInterceptor ( ) . setLevel ( HttpLoggingInterceptor. Level. BODY ) )
. addInterceptor ( new TokenInterceptor ( ) )
. build ( ) ;
Retrofit retrofit = new Retrofit. Builder ( )
. client ( okHttpClient)
. baseUrl ( Constants. BASE_URL )
. addCallAdapterFactory ( RxJava2CallAdapterFactory. create ( ) )
. addConverterFactory ( GsonConverterFactory. create ( ) )
. build ( ) ;
return retrofit. create ( FiannceApiService. class ) ;
}
}
api 'io.reactivex.rxjava2:rxjava:2.2.6'
api 'io.reactivex.rxjava2:rxandroid:2.1.1'
api 'com.squareup.okhttp3:okhttp:3.12.1'
api 'com.squareup.okhttp3:logging-interceptor:3.11.0'
api 'com.squareup.retrofit2:retrofit:2.6.2'
api 'com.squareup.retrofit2:converter-gson:2.6.2'
api 'com.squareup.retrofit2:adapter-rxjava2:2.6.2'
请求头
package com. example. net;
import com. example. commened. FiannceContants;
import com. example. commened. SpUtil;
import com. example. net. module. NetModule;
import java. io. IOException;
import okhttp3. Interceptor;
import okhttp3. Request;
import okhttp3. Response;
public class TokenInterceptor implements Interceptor {
@Override
public Response intercept ( Chain chain) throws IOException {
Request request = chain. request ( ) ;
String token = SpUtil. getString ( NetModule. context, FiannceContants. TOKEN_KEY ) ;
Request newRequest = request. newBuilder ( ) . addHeader ( FiannceContants. TOKEN_KEY , token) . build ( ) ;
return chain. proceed ( newRequest) ;
}
}