retrofit:
A type-safe HTTP client for Android and Java;大概意思是 针对Android和Java的类型安全的HTTP客户端。
网上火的都是Retrofit + RxJava + 其他的框架。
从retrofit官网可以看到介绍:
1.Retrofit turns your HTTP API into a Java interface.
大概意思是 “改造将您的HTTP API到Java接口”。具体什么意思,不知道,这是谷歌翻译的,有点绕口,看官网的例子就知道了。
public interface GitHubService {
@GET("users/{user}/repos")
Call<List<Repo>> listRepos(@Path("user") String user);
}
可以发现这个接口里面有请求方法:get,还有参数"引号里面的可以看成是占位符,没有实际意义,只有代表意义",还有回调的接收对象。
2.The Retrofit
class generates an implementation of the GitHubService
interface.
就是 Retrofit生成这个接口的一个对象。
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build(); GitHubService service = retrofit.create(GitHubService.class);
可以看出这个接口就是以前用的网络请求的回调,并且retrofit里面有请求实体,那么接口里肯定会有网络请求实体。
Retrofit Configuration
可以在Configuration里面看retrofit的具体配置
Retrofit is the class through which your API interfaces are turned into callable objects. By default, Retrofit will give you sane defaults for your platform but it allows for customization.意思是:
Retrofit是通过您的API接口都变成可调用对象的类。默认情况下,Retrofit会给你明智的默认设置您的平台,但它允许定制。
Converters can be added to support other types. Six sibling modules adapt popular serialization libraries for your convenience.
- Gson:
com.squareup.retrofit2:converter-gson
- Jackson:
com.squareup.retrofit2:converter-jackson
- Moshi:
com.squareup.retrofit2:converter-moshi
- Protobuf:
com.squareup.retrofit2:converter-protobuf
- Wire:
com.squareup.retrofit2:converter-wire
- Simple XML:
com.squareup.retrofit2:converter-simplexml
然后就给出了支持Gson的例子:
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com") .addConverterFactory(GsonConverterFactory.create()) .build(); GitHubService service = retrofit.create(GitHubService.class);
最后就是使用retrofit时在Gradle里面的配置
compile 'com.squareup.retrofit2:retrofit:2.1.0'
现在可以看出retrofit把之前的网络请求分成了几部分,一,是接口,二,是retrofit对象创建了一个接口对象,三,是接口对象的网络请求。
其实无论怎么变,网络请求电脑能识别的也就这几种。之所以这样一切都是为了方便人。