Retrofit2笔记

一、Retrofit使用

定义接口

public interface GitHub {

@GET("/repos/{owner}/{repo}/contributors")

Call> contributors(@Path("owner") String owner, @Path("repo") String repo);

}

Retrofit retrofit = new Retrofit.Builder().baseUrl("http://localhost:8080/").build();

GitHub github = retrofit.create(GitHub.class);

List contributors = call.execute().body();

地址以斜线结尾,注解中的地址不要以斜线开头.

二、Retrofit注解

1. GET相关

@GET("/repos/{owner}/{repo}/contributors")

Call> contributors(@Path("owner") String owner, @Path("repo") String repo);

result : contributors("square", "")


@Headers("Cache-Control: max-age=640000")

@GET("/")


@Headers({"X-Foo: Bar","X-Ping: Pong"})

@GET("/")


@GET("/")

Call foo(@Header("Accept-Language") String lang);


@GET("/search")

void list(@HeaderMap Map headers);


Accept: text/plain and Accept-Charset: utf-8

foo.list(ImmutableMap.of("Accept", "text/plain", "Accept-Charset", "utf-8"));


2. POST

除上述GET请求配置外,有Field, FieldMap,需要指定FormUrlEncoded

@FormUrlEncoded

@POST("/")

Call example(

@Field("name") String name,

@Field("occupation") String occupation);

Calling withfoo.example("Bob Smith", "President")yields a request body ofname=Bob+Smith&occupation=President.


@FormUrlEncoded

@POST("/things")

Call things(@FieldMap Map fields);

Calling withfoo.things(ImmutableMap.of("foo", "bar", "kit", "kat")yields a request body offoo=bar&kit=kat.


@Body 发送json格式POST body

你可能感兴趣的:(Retrofit2笔记)