Observable<XXXXX>post(@Body RequestBody body); 没有使用过RxJava的可以不用学了,建议直接去学习Kotlin Flow,以后Kotlin开发是趋势了Google现在也在大力推Kotlin。 好了,废话不多说了,下面正式开始介绍下自己封装的请求框架,写的不好的地方轻点喷 ^-^ / BaseResponse...
implementation'com.squareup.retrofit2:retrofit:2.8.1'implementation"com.squareup.retrofit2:converter-gson:2.8.1"//Coroutineimplementation"org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.6"implementation"org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.6" 约定常见的错误类型 我们期望ApiException中也...
没有那么多弯弯绕绕,秉着这个原则就很好理解与运用了,有了kotlin 协程就更加简洁了。 Retrofit + 协程, 一行代码就实现 HTTP请求的封装 简洁的令人发指 fun<T>launchData(scope:CoroutineScope=GlobalScope,request:suspendCoroutineScope.()->Res<T>,resp:(T?)->Unit){scope.launch{try{resp(request().data)}...
Retrofit对协程的支持非常的简陋。在kotlin中使用不符合kotlin的优雅 interfaceTestServer{@GET("banner/json")suspendfunbanner():ApiResponse<List<Banner>>}//实现并行捕获异常的网络请求funoldBanner(){viewModelScope.launch{//传统模式使用retrofit需要try catchvalbannerAsync1=async{varresult:ApiResponse<Li...
Retrofit是一个基于Java的RESTful API库,用于在Android应用程序中进行网络请求。它提供了简单且灵活的方式来定义和执行HTTP请求,并处理响应数据的解析。Retrofit的主要特点包括类型安全的HTTP请求和响应,可定制的请求头和参数,以及多种数据解析器的支持。 Kotlin Post Request 400错误是指在使用Kotlin语言进行POST请求时,服...
isKotlinSuspendFunction){//如果不是suspend函数,则返回类型需要是retrofit2.Call<T>。//代码走到这里就结束了。retrofit2并没有为我们发起网络请求。returnnew CallAdapted<>(requestFactory,callFactory,responseConverter,callAdapter);}elseif(continuationWantsResponse){//是suspend函数的处理,retrofit2执行了网络请求...
getName(), requestBody2); Map<String,MultipartBody.Part> mapPart = new HashMap<>(); mapPart.put("file1",filePart1); mapPart.put("file2",filePart2); Call<ResponseBody> partMapDataCall = retrofit.create(Api.class).getPartMapData(mapPart); 整体示例 假如我们要请求 https://www.psvmc...
代码摘自这里这是一篇非常好的Kotlin 协程 + Retrofit 入门的文章,其代码如下: 服务的定义 interface ApiService { @GET("users") suspend fun getUsers(): List<User> } 1. 2. 3. 4. 5. Retrofit Builder object RetrofitBuilder { private const val BASE_URL = "https://5e510330f2c0d300147c034c.mo...
4、执行 SuspendForBody 的 adapt 方法,Object[] args 参数为 videoApi.getVideoList() 的所有入参,包括最后一个 Continuation 参数。 5、 进入 KotlinExtension.await() 方法,这是一个用 kotlin 编写的 Call 的扩展 suspend 方法。 suspend fun <T : Any> Call<T>.await(): T { ...
interfaceApi{@POST("api/getCode")suspend fungetCode(@Bodybody: RequestBody): BaseResp<JsonObject?> } 3.ApiManager 使用 枚举单例模式; 包括 初始化 Retrofit, OkHttpClient, 添加请求Token, 请求日志打印. /** * Retrofit 管理类; */enumclassApiManager { ...