-
-
Notifications
You must be signed in to change notification settings - Fork 84
如何引用
xuexiangjys edited this page Mar 23, 2022
·
10 revisions
1.先在项目根目录的 build.gradle 的 repositories 添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
2.然后在应用项目(一般是app)的 build.gradle
的 dependencies 添加:
以下是版本说明,选择一个即可。
- androidx版本:2.0.0及以上
dependencies {
...
implementation 'com.github.xuexiangjys:XHttp2:2.0.4'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
}
- support版本:1.0.4及以下
dependencies {
...
implementation 'com.github.xuexiangjys:XHttp2:1.0.4'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
}
3.在Application中初始化XHttpSDK
XHttpSDK.init(this); //初始化网络请求框架,必须首先执行
XHttpSDK.debug("XHttp"); //需要调试的时候执行
XHttpSDK.setBaseUrl(SettingSPUtils.getInstance().getApiURL()); //设置网络请求的基础地址
4.全局初始化配置(非必要)
除了上述的操作以外,你还可以使用XHttp.getInstance()
对网络请求框架进行全局性参数配置,配置一些公用默认的参数,这样我们就不需要为每个请求都进行设置。方法如下:
方法名 | 备注 |
---|---|
debug | 设置日志的打印模式 |
setBaseUrl | 设置全局baseUrl |
setSubUrl | 设置全局subUrl |
setReadTimeOut | 设置全局读取超时时间 |
setWriteTimeOut | 设置全局写入超时时间 |
setConnectTimeout | 设置全局连接超时时间 |
setTimeout | 设置全局超时时间 |
setRetryCount | 设置全局超时重试次数 |
setRetryDelay | 设置全局超时重试延迟时间 |
setRetryIncreaseDelay | 设置全局超时重试延迟叠加时间 |
setCacheMode | 设置全局的缓存模式 |
setIsDiskCache | 设置是否是磁盘缓存 |
setMemoryMaxSize | 设置内存缓存的最大数量 |
setCacheTime | 设置全局的缓存过期时间 |
setCacheMaxSize | 设置全局的磁盘缓存大小,默认50M |
setCacheDirectory | 设置全局缓存的路径,默认是应用包下面的缓存 |
setCacheDiskConverter | 设置全局缓存的转换器 |
addCommonParams | 添加全局公共请求参数 |
addCommonHeaders | 添加全局公共请求参数 |
addInterceptor | 添加全局拦截器 |
addNetworkInterceptor | 添加全局网络拦截器 |
setOkproxy | 全局设置OkHttpClient的代理 |
setOkconnectionPool | 设置全局OkHttpClient的请求连接池 |
setOkclient | 全局为Retrofit设置自定义的OkHttpClient |
addConverterFactory | 设置全局Converter.Factory,默认GsonConverterFactory.create() |
addCallAdapterFactory | 设置全局CallAdapter.Factory,默认RxJavaCallAdapterFactory.create() |
setHostnameVerifier | 设置https的全局访问规则 |
setCertificates | 设置https的全局自签名证书 |
setCookieStore | 设置全局cookie存取规则 |
setStrictMode | 设置严格模式,在严格模式下,json返回的data数据不能为null |
#XHttp2
-keep class com.xuexiang.xhttp2.model.** { *; }
-keep class com.xuexiang.xhttp2.cache.model.** { *; }
-keep class com.xuexiang.xhttp2.cache.stategy.**{*;}
-keep class com.xuexiang.xhttp2.annotation.** { *; }
#okhttp
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;}
-dontwarn okio.**
-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault
-dontwarn javax.annotation.**
# Retrofit
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Exceptions
# RxJava RxAndroid
-dontwarn sun.misc.**
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
rx.internal.util.atomic.LinkedQueueNode producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
rx.internal.util.atomic.LinkedQueueNode consumerNode;
}
#如果用到Gson解析包的,直接添加下面这几行就能成功混淆,不然会报错
-keepattributes Signature
-keep class com.google.gson.stream.** { *; }
-keepattributes EnclosingMethod
-keep class org.xz_sale.entity.**{*;}
-keep class com.google.gson.** {*;}
-keep class com.google.**{*;}
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
-keep class com.google.gson.examples.android.model.** { *; }