cloudroam
10 天以前 04b138d3836e03c9adbcbd367fd71d92905c5206
app/src/main/java/com/example/firstapp/database/service/ApiService.kt
@@ -1,6 +1,7 @@
package com.example.firstapp.database.service
import TokenResponse
import android.content.Context
import com.example.firstapp.database.entity.ApiResponse
import com.example.firstapp.database.entity.KeywordConfig
import com.example.firstapp.database.request.ProductOrdersRequest
@@ -16,6 +17,8 @@
import com.example.firstapp.model.CategoryConfig
import com.example.firstapp.model.CategoryConfigSync
import com.example.firstapp.network.AuthInterceptor
import com.example.firstapp.network.ResponseInterceptor
import com.example.firstapp.network.TokenExpiredInterceptor
import okhttp3.MultipartBody
import okhttp3.OkHttpClient
import okhttp3.RequestBody
@@ -72,9 +75,11 @@
    @POST("api/account/close")
    suspend fun closeAccount(): AccountCloseResponse
    fun getUserCategories(currentUserId: String): List<CategoryConfig>
    @GET("api/categoryConfig/getByUserId/{userId}")
    suspend fun getUserCategories(@Path("userId") currentUserId: String): List<CategoryConfig>
    fun saveUserCategories(categoryConfigSync: CategoryConfigSync)
    @POST("api/categoryConfig/saveOrUpdate/")
    suspend fun saveUserCategories(@Body categoryConfigSync: CategoryConfigSync)
}
@@ -84,25 +89,37 @@
 //   private const val BASE_URL ="http://192.168.1.213:8080/flower/"
    private const val BASE_URL ="http://14.103.144.28:8080/flower/"
    private lateinit var appContext: Context
    // 初始化方法,需要在Application中调用
    fun init(context: Context) {
        appContext = context.applicationContext
    }
    // 创建OkHttpClient,配置拦截器和超时时间
    private val okHttpClient = OkHttpClient.Builder()
        .addInterceptor(AuthInterceptor())
        .connectTimeout(30, TimeUnit.SECONDS)
        .readTimeout(30, TimeUnit.SECONDS)
        .writeTimeout(30, TimeUnit.SECONDS)
        .build()
    private val okHttpClient by lazy {
        OkHttpClient.Builder()
            .addInterceptor(AuthInterceptor())
            .addInterceptor(TokenExpiredInterceptor(appContext))
            .addInterceptor(ResponseInterceptor(appContext))
            .connectTimeout(30, TimeUnit.SECONDS)
            .readTimeout(30, TimeUnit.SECONDS)
            .writeTimeout(30, TimeUnit.SECONDS)
            .build()
    }
    //添加Gson解析器,用于自动将JSON响应转换为Kotlin/Java对象
    private val retrofit = Retrofit
        .Builder()
        .client(okHttpClient)
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build()
    private val retrofit by lazy {
        Retrofit
            .Builder()
            .client(okHttpClient)
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build()
    }
    //通过动态代理技术创建ApiService接口的具体实现类
    val apiService:ApiService = retrofit.create(ApiService::class.java)
    val apiService by lazy { retrofit.create(ApiService::class.java) }
}