使用body作为参数的Kotlin的Retrofit2 POST请求是一种常见的网络请求方式,它可以用于向服务器发送数据并获取响应。下面是对该问题的完善和全面的答案: 1. 概念: 使用bod...
从Java切换到Kotlin的开发应该都能感觉到Kotlin语法糖是真的香,以前使用Java的时候请求框架一般都是用的RxJava,添加RxJava2CallAdapterFactory 用Observable接收返回结果,开发者不需要在做其他操作就可以愉快的使用RxJava的各种操作符了。 @POST("xxxxx") Observable<XXXXX>...
Kotlin是一种现代化的静态编程语言,Retrofit2是一个用于Android和Java的HTTP客户端库。它们结合使用可以方便地发送HTTP请求和处理响应。在使用Retrofit2发送请求时,可以使用body作为原始JSON数据。 具体而言,body参数是用于POST、PUT和PATCH请求方法的请求体。它允许将原始JSON数据作为请求的主体发送给服务器。以下是一些...
build() retrofit.create(GitHubServiceApi::class.java) } 那么我们请求网络时: gitHubServiceApi.getUser("bennyhuo").enqueue(object : Callback<User> { override fun onFailure(call: Call<User>, t: Throwable) { handler.post { showError(t) } } override fun onResponse(call: Call<User>, response...
class RetrofitFactory private constructor() { companion object { val instance: RetrofitFactory by lazy { RetrofitFactory() } } private val retrofit: Retrofit private val interceptor: Interceptor //初始化 init { //通用拦截 interceptor = Interceptor { chain -> ...
Retrofit在创建的时候,有一行代码: .baseUrl(baseUrl) 这个baseUrl是我们要访问的接口的baseUrl,而我们现在用POST注解的字符串 "api/login"会追加到baseUrl后面,通过去调用这个接口得到返回数据。 2、创建Retrofit对象 classWebServiceprivateconstructor(){companionobject{varapi:Api?=nullget(){if(field==null){fi...
interfaceApi{@POST("api/getCode")suspend fungetCode(@Bodybody: RequestBody): BaseResp<JsonObject?> } 3.ApiManager 使用 枚举单例模式; 包括 初始化 Retrofit, OkHttpClient, 添加请求Token, 请求日志打印. /** * Retrofit 管理类; */enumclassApiManager { ...
Log.i("CoroutinesActivity","onResponse:${response.body()}") } }) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 先创建retrofit,然后通过retrofit创建service,通过serice拿到Call对象,最后调用Call的enqueue方法,从回调中得到结果。
我不得不添加一个带有MediaType文本/plain的RequestBody,它工作正常。
三、Retrofit的使用 允许我们将接口分类使得代码的架构更加合理,有指定根路径使得我们只需要利用相对路径即可发起请求 这里举一些处理复杂接口的一些例子 //最简单的获取数据的一个接口文件,静态//GET https://ex.com/get_data.json@GET("get_data.json")fungetAppData(): Call<List<App>>//数据前面有可变参数...