Android Studio接口对接部署
1.配置请求BaseUrl地址
建立BaseHelper.kt
1 2 3 4 5 6 7 8 9 | 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 IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?