包括上传、path、请求body、以及请求头、自定义请求头等等参数的使用
@GET 发送get方法的请求,@POST发送post方法的请求,@Header 网络请求的Header部分的键值对
@Body Post请求报文的Body内容,内容往往是一个对Java Bean解析后得到的JSON String,@Path网络路径的缺省值,@Query网络请求地址后面的查询键值对,如www.baidu.com/s?wd=REST&rsv_spt=1.
@FormUrlEncoded 和 @FieldMap配套使用,用于向Post表单传入键值对
public interface MyApiEndpointInterface {
@GET("users/{username}") //note1
Call<user> getUser(@Path("username") String username,@Header("Cache-Control") int maxAge);
@Headers({"Cache-Control: max-age=640000", "User-Agent: My-App-Name"})//note2
@POST("users/new")
Call<user> createUser(@Body User user,@Query("sort") String sort); //user支持被gson序列化的一个类,如JavaBean
@FormUrlEncoded
@POST("some/endpoint")
Call<someresponse> someEndpoint(@FieldMap Map<string, string=""> names);
@POST("https://blog.csdn.net/") //note3
Call<response<user>> getUser(@Query("name") String name);
@Multipart //note4
@POST("some/endpoint")
Call<response> uploadImage(@Part("description") String description, @Part("image") RequestBody image)
@GET("users/{username}") //note5
void getUser(@Path("username") String username, Callback<user> cb);
}