Retrofit学习

Retrofit学习

可能第一次学习的时候不够充分了解,因此今天再来重新捋捋Retrofit这个Android网络组件如何使用。部分内容参考了一下博客和官网。

简介

Retrofit框架是一个网络请求框架,该框架的实质还是通过OkHttp的形式进行网络的访问,对于Retrofit部分,仅仅是把你所需要的东西封装成了一个网络请求接口的类型。

使用该框架的时候,需要gradle进行导包:

implementation ("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.okhttp3:okhttp:4.9.0")

因为retrofit内部是使用okhttp框架的,所以除了添加retrofit依赖以外,还需要添加okhttp框架的依赖。

最简单的一个使用方法,创建一个小按钮,然后需要实现的功能就是点击这个按钮后,能够进行访问https://baidu.com/这个网站,并且进行获取这个网页的内容。

然后使用Retrofit来写代码

接口部分

interface IRemoteDemo {
    @GET("")
    fun getResponse(): Call<ResponseBody>
}

按钮中的操作内容

val retrofit: Retrofit = Retrofit.Builder()
    .baseUrl("https://www.baidu.com/") //设定基本的url
    .build()
val iRemoteDemo: IRemoteDemo =retrofit.create(IRemoteDemo::class.java)
val call=iRemoteDemo.getResponse()
call.enqueue(object : Callback<ResponseBody> {
    override fun onResponse(
        call: Call<ResponseBody>,
        response: retrofit2.Response<ResponseBody>
    ) {
        Log.d("retrofitdemotag","${response.body()?.string()}")
    }
    override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
        Log.d("retrofitdemotag","${t.printStackTrace()}")
    }
})

分析

接口部分写了一个函数,需要获取返回值的内容,然后是使用对应的get方法的。然后在按钮部分中,声明了对应的一个retrofit类,然后用该类去查u你更加爱你一个call实例,最后用call实例执行enqueue方法去进行网络的访问与返回。

在创建retrofit中,使用的是Retrofit.Builder进行创建的,需要制定其基本的url。

retrofit这个组件,会把一个请求api的链接分成两部分,一部分是baseurl,另一部分是除去baseurl中的后半部分。比如请求一个url=http:192.168.0.100:8080/web_demo/userServlet,那么baseurl就是http:192.168.0.100:8080/web_demo/这部分,后半部分就是userServlet

如果在baseurl中并没有以/为结尾的,那么在interface中的@GET中或者其他的标注中必须使用/作为开头,否则就会抛出异常。

使用GSON进行转换

如果使用了JSON进行文件的传送,那么可能会使用到GSON这个组件。使用组件需要进行导包:

implementation ("com.google.code.gson:gson:2.8.7")

implementation ("com.squareup.retrofit2:converter-gson:2.9.0")

在retrofit中使用Gson比较简单,在创建的时候进行创建就行,定义好一个写好的类,然后在创建retrofit时进行添加ConverterFactory即可:

val retrofit:Retrofit=Retrofit.Builder()
                .baseUrl("https://www.baidu.com") //设定基本的url
                .addConverterFactory(GsonConverterFactory.create())
                .build()

Gson这个组件比较简单,该组件时Google公司开发的,主要的作用是把json字段转换成对应的类,或者把对应的类转换成json字段,然后通过文字的形式往网络上进行传送。

posted @ 2021-08-12 10:18  野生的Lemon柠檬  阅读(78)  评论(0编辑  收藏  举报

呱呱呱呱呱🐸