Retrofit的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Retrofit的使用相关的知识,希望对你有一定的参考价值。

  Retrofit对象创建采用的是建造者模式,baseUrl 必须得指定,url有两种情况(schme://host/path/path/path/),只写到主机名(host),或者写path后跟/结束。其他的形式的是非法的。

1 Retrofit retrofit = new Retrofit.Builder()
2     .baseUrl(API_URL)
3     .addConverterFactory(GsonConverterFactory.create())
4     .build();

  retrofit是通过对方法的反射来执行网络请求,需要方法的注解和参数列表,不需要方法体,所以调用create()方法时要的是一个接口,在这个方法中创建了Github接口的代理,其中接口中的方法代码一个完整的请求,用方法注解来表示网络请求的方法和url,其中url中的path是可以即时变化的,变化的值放在方法的参数列表中,参数列表的注解来表示该参数对应url中的哪一部分。

public interface GitHub {
  @GET("/repos/{owner}/{repo}/contributors")
  Call<List<Contributor>> contributors(@Path("owner") String owner, @Path("repo") String repo);
}
GitHub github = retrofit.create(GitHub.class);

Retrofit用给方法加的注解来定义网络请求的方式,包含以下注解:

@DELETE

@GET:对应GET请求方式,注解的值是要请求的路径

@POST:POST请求方式,用于提交数据到服务器

@PUT

@HEAD

@OPTIONS

@PATCH

@HTTP:自定义请求方式

@Headers

@Multipart

@FormUrlEncoded

以上是关于Retrofit的使用的主要内容,如果未能解决你的问题,请参考以下文章

使用Retrofit2解析XML。多个结果列表不起作用

使用 Retrofit 解析带有对象数组的 JSON 数组

导航到另一个片段时触发 API 调用

如何从片段中的 JSON 响应中的对象获取数据

如何在Activity中使用Retrofit和RxJava / RxAndroid处理旋转?

如何使用 Retrofit 2 处理空响应体?