retrofit 英文名字是改装的意思,也就是说他是对网络请求的一种改装,他不负责进行网络请求,他是对请求方式的一种封装。真正进行网络请求的是okhttp。
以下所有内容在Android Studio已经导入retrofit为基础。导入方式如下:
compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareup.retrofit2:converter-scalars:2.1.0'
利用Retrofit进行简单的GET请求
retrofit在构建请求方式之前,需要构建一个接口方法,通过这个接口方法的返回值,来进行网络请求。
下面,来通过一些简单的例子了解GET请求。
实验一:对一个简单的html页面进行GET请求
我们要获取百度页面的HTML。首先构建如下接口:
public interface HtmlService { @GET("/") Call<String> getHtml();
}
注意,GET注解中的参数,和方法中的参数至少要加一个,否则会报错。由于,我们只需要请求www.baidu.com,所以get这里不需要加参数,就是/
然后,我们通过如下步骤,来进行网络请求。
在我们需要进行网络请求的类中,通过以下的步骤,进行网络请求:
- 构建retrofit对象。
- 动态代理生成接口的对象。
- 通过接口的方法,得到要请求的API的调用。
- 通过同步/异步的方式,得到response。
- 根据需要,处理response。
第一步
Retrofit retrofit = new Retrofit.Builder(). addConverterFactory(ScalarsConverterFactory.create()).
baseUrl("https://www.baidu.com").
build();
通过以上代码,可以简单的构建一个retrofit对象,addConvert
