Skip to content

Latest commit

 

History

History
107 lines (85 loc) · 2.84 KB

File metadata and controls

107 lines (85 loc) · 2.84 KB

🎉 网络请求框架搭建完成!

✅ 已完成的功能

核心网络框架

  • ApiResult - 统一的结果包装类,支持 Success/Error/Exception/Loading 状态
  • ApiResponse - 标准接口响应结构,支持自动转换
  • BaseRepository - Repository基类,提供安全的API调用方法
  • NetworkErrorInterceptor - 智能错误拦截器,统一处理HTTP错误
  • RetrofitClient - 灵活的Retrofit客户端工厂

技术栈

  • ✅ Retrofit2 + OkHttp + Moshi
  • ✅ Kotlin Coroutines 协程支持
  • ✅ Jetpack Compose UI
  • ✅ ViewModel + StateFlow 状态管理

演示功能

  • ✅ 模拟网络请求(成功/失败/异常)
  • ✅ 完整的Loading状态管理
  • ✅ 错误处理和用户友好提示
  • ✅ 现代化的Compose UI界面

🚀 如何使用

1. 基本使用

class YourRepository : BaseRepository() {
    suspend fun getData(): ApiResult<YourData> {
        return safeApiCall { apiService.getData() }
    }
}

2. ViewModel集成

class YourViewModel : ViewModel() {
    private val _data = MutableStateFlow<ApiResult<YourData>>(ApiResult.Loading)
    val data: StateFlow<ApiResult<YourData>> = _data.asStateFlow()
    
    fun loadData() {
        viewModelScope.launch {
            _data.value = repository.getData()
        }
    }
}

3. UI状态处理

when (dataState) {
    is ApiResult.Loading -> CircularProgressIndicator()
    is ApiResult.Success -> ShowSuccessUI(dataState.data)
    is ApiResult.Error -> ShowErrorUI(dataState.message)
    is ApiResult.Exception -> ShowExceptionUI(dataState.exception)
}

📱 演示应用

已经构建并安装成功!应用包含:

  • 加载Banner按钮 - 演示网络请求的各种状态
  • 加载文章按钮 - 展示错误处理机制
  • 状态指示器 - 清晰展示Loading/Success/Error状态
  • 用户友好提示 - 完整的错误信息展示

🔧 支持的功能

标准API格式

{
  "errorCode": 0,
  "errorMsg": "成功",
  "data": { ... }
}

第三方API格式

{ "直接": "返回数据" }

错误处理

  • HTTP错误(401, 403, 404, 500等)自动映射
  • 网络连接异常处理
  • 业务逻辑错误统一处理
  • 自定义异常类型支持

📖 扩展指南

  1. 添加新API: 创建接口 → 实现Repository → 在ViewModel调用
  2. 自定义拦截器: 继承Interceptor接口,添加到OkHttpClient
  3. 缓存策略: 在Repository层实现本地缓存逻辑
  4. 认证处理: 通过拦截器自动添加Token

🎯 下一步计划

  • 集成真实的WanAndroid API
  • 添加网络缓存策略
  • 实现文件上传下载
  • 集成Hilt依赖注入(可选)
  • 添加网络状态监听

🎊 恭喜!你现在拥有了一个功能完整、易于扩展的现代化Android网络请求框架!