Skip to content

网络请求和网络测试


implementation 'com.github.liangjingkanji:Net:3.6.4'
implementation 'com.squareup.okhttp3:okhttp:4.12.0'

debug 模式

app/src/main/java/com/ruoyi/app/App.kt

OKHttpUtils.initialize(this)

fun initialize(context: Context) {
        NetConfig.initialize(ConfigApi.baseUrl, context) {

            // 超时设置
            connectTimeout(30, TimeUnit.SECONDS)
            readTimeout(30, TimeUnit.SECONDS)
            writeTimeout(30, TimeUnit.SECONDS)

            // 本框架支持Http缓存协议和强制缓存模式
            cache(Cache(context.cacheDir, 1024 * 1024 * 128))
            // 缓存设置, 当超过maxSize最大值会根据最近最少使用算法清除缓存来限制缓存大小

            // LogCat是否输出异常日志, 异常日志可以快速定位网络请求错误
            setDebug(BuildConfig.DEBUG)

            // AndroidStudio OkHttp Profiler 插件输出网络日志
            addInterceptor(LogRecordInterceptor(BuildConfig.DEBUG))

            // 添加持久化Cookie管理
            cookieJar(PersistentCookieJar(context))

            // 統一 异常处理
            setErrorHandler(ErrorHandler())
            // 通知栏监听网络日志
            if (BuildConfig.DEBUG) {
                addInterceptor(
                    ChuckerInterceptor.Builder(context)
                        .collector(ChuckerCollector(context))
                        .maxContentLength(250000L)
                        .redactHeaders(emptySet())
                        .alwaysReadResponseBody(false)
                        .build()
                )
            }

            // 添加请求拦截器, 可配置全局/动态参数
            setRequestInterceptor(RequestInterceptor())

            // 数据转换器
            setConverter(SerializationConverter())

            // 自定义全局加载对话框
            setDialogFactory {
                BubbleDialog(it, Frame.getString(R.string.bubble_loading_title))
            }
        }
    }

debug 模式 日志的输出模式

ChuckerInterceptor 拦截器 ,为了更好处理网络数据

怎么使用

配置 API 地址

app/src/main/java/com/ruoyi/app/api/ConfigApi.kt
const val baseUrl = "http://vue.ruoyi.vip/prod-api"

const val login = "/login";// 登录
 Post<LoginEntity>(ConfigApi.login) {
            body = OKHttpUtils.getRequestBody(
                LoginRequest(
                    code,
                    password,
                    username,
                    uuid ?: ""
                )
            )
        }.await()
		
接口地址 
post 请求方式
里面放回来的数据 转换为实体

如果以上内容对您有帮助,请老板用微信扫一下赞赏码。

支持渠道支持渠道

本文档内容版权属于 RuoYi-Go 作者,保留所有权利 .