retrofit浅谈

本文详细介绍Retrofit这一类型安全的HTTP客户端工具,适用于Android和Java应用。重点讲解如何通过定义Java接口来实现HTTP API调用,包括请求方法、路径参数及响应处理等。同时探讨Retrofit的配置方式和常见序列化库的集成。
摘要由CSDN通过智能技术生成

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对象创建了一个接口对象,三,是接口对象的网络请求。

其实无论怎么变,网络请求电脑能识别的也就这几种。之所以这样一切都是为了方便人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值