| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | @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) |
| | | |
| | | } |
| | | |
| | |
| | | // 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) } |
| | | |
| | | } |