retrofit简单使用

参考

implementation 'com.squareup.retrofit2:retrofit:(insert latest version)'

使用步骤:

1、声明请求接口

public interface GitHubService {

  @GET("users/{user}/repos")

  Call> listRepos(@Path("user") String user);

}

2、Retrofit实例

Retrofit retrofit = new Retrofit.Builder()

    .baseUrl("https://api.github.com/")

    .build();

3、获得接口实例

GitHubService service = retrofit.create(GitHubService.class);

4、调用接口方法请求

Call> repos = service.listRepos("octocat");

 

异步获取

repos .enqueue(new Callback>() {

    @Override

    public void onResponse(Call> call, Response> response) {

        if (response.isSuccessful()) {

            // tasks available

        } else {

            // error response, no access to resource?

        }

    }

    @Override

    public void onFailure(Call> call, Throwable t) {

        // something went completely south (like no internet connection)

        Log.d("Error", t.getMessage());

    }

}

请求接口

返回结果类型为: Call<实际结果类型>

方法注释:内置了5中注释GET,POST,PUT,DELETE, HEAD;可在它们基础上增加其它注释,这些注释为增加请求头信息或请求体信息类别

替换: 注释内容中使用{name},在参数中使用@Path("name"), name为字段名字

方法参数:

 1、@Query("sort") String sort      

2、 @QueryMap Map options   

3、注释类型为POST时,增加请求体 @Body

4、请求体也可为值对,增加方法注释@FormUrlEncoded,参数 @Field("first_name") String first

5、请求体为多个部分,增加方法注释 @Multipart, 参数:@Part("photo") RequestBody photo, @Part("description") RequestBody description

6、增加头注释 @Headers("Cache-Control: max-age=640000"),设置header

7、方法参数:@Header("Authorization") String authorization, 效果同6 

8、参数 @HeaderMap Map headers 设置多个


添加gson转换

Retrofit retrofit = new Retrofit.Builder()

    .baseUrl("https://api.github.com")

    .addConverterFactory(GsonConverterFactory.create())

    .build();

你可能感兴趣的:(retrofit简单使用)