Android Studio接口对接部署

1.配置请求BaseUrl地址

建立BaseHelper.kt

object RetrofitInstance {
    private const val BASE_URL = "https://xxxxxxx.com/"
    val retrofit: Retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(CoroutineCallAdapterFactory())
        .build()
    val apiService: ApiService = retrofit.create(ApiService::class.java)
}

2.部署请求接口地址

ApiService.kt

interface ApiService {
    //登录接口
    @POST("/api/Login.aspx)
    @Headers("Content-Type:application/json")
    suspend fun getLogin(@Body model: LoginModel?): LoginResult

}

3.建立请求类

LoginModel.kt

class  LoginModel{
    var userid:String= ""
    var password:String= ""
}

4.建立ViewModel,视图UI和模型数据之间的媒介

class LoginVM: ViewModel() {
    private val LoginRepo = LoginRepo()
     var loginInfo: LoginResult? = LoginResult()
     suspend fun getLogin(model: LoginModel) {
         try {
             loginInfo = withContext(Dispatchers.IO) {
                 LoginRepo.getLogin(model).invoke()
             }
             Log.d("接口对接:", loginInfo!!.Status)
         } catch (e: Exception) {
             Log.d("错误:1111111", e.toString())
         }
     }
}

5.UI界面请求写法

CoroutineScope(Dispatchers.Main) 通常用于确保协程中的代码在主线程上执行

Dispatchers.IO 是一个预定义的调度器,用于执行可能阻塞 I/O 的任务。它旨在优化 I/O 操作的性能,通过减少线程之间的上下文切换,并允许在等待 I/O 操作完成时释放线程。

withContext 函数用于切换协程的上下文,包括调度器。当你调用 withContext(Dispatchers.IO) 时,它会挂起当前协程,将其移动到 Dispatchers.IO 调度器的线程池中,然后在该线程池中恢复协程的执行。

private fun Login() {
        //账号密码
        val Info = LoginModel()
        Info.userid=binding.edUserId.text.toString().trim()
        Info.password=binding.edPassword.text.toString().trim()
        CoroutineScope(Dispatchers.Main).launch {
            withContext(Dispatchers.IO) {
                Log.d("登录账号密码", "Login: " + Info.userid + Info.password)
                //请求接口获取数据
                viewModel.getLogin(Info)
                updateLoginUI(Info) // 使用获取的数据来更新UI

            }
        };

    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容