ApiService.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.guiying.common.http;
  2. import java.util.Map;
  3. import okhttp3.ResponseBody;
  4. import retrofit2.Call;
  5. import retrofit2.http.FieldMap;
  6. import retrofit2.http.FormUrlEncoded;
  7. import retrofit2.http.GET;
  8. import retrofit2.http.HeaderMap;
  9. import retrofit2.http.POST;
  10. import retrofit2.http.Streaming;
  11. import retrofit2.http.Url;
  12. /**
  13. * <p>
  14. * 注意:如果方法的泛型指定的类不是ResponseBody,retrofit会将返回的string用json转换器自动转换该类的一个对象,转换不成功就报错
  15. * 如果不需要Gson转换,那么就指定泛型为ResponseBody,只能是ResponseBody,子类都不行.
  16. * </p>
  17. *
  18. * @author 张华洋 2016/12/5 15:22
  19. * @version V1.0.0
  20. * @name HttpParams
  21. */
  22. public interface ApiService {
  23. @GET
  24. Call<ResponseBody> executeGet(@Url String url);
  25. /**
  26. * POST方式将以表单的方式传递键值对作为请求体发送到服务器
  27. * 其中@FormUrlEncoded 以表单的方式传递键值对
  28. * 其中 @Path:所有在网址中的参数(URL的问号前面)
  29. * 另外@FieldMap 用于POST请求,提交多个表单数据,@Field:用于POST请求,提交单个数据
  30. * 使用@url是为了防止URL被转义为https://10.33.31.200:8890/msp%2Fmobile%2Flogin%3
  31. */
  32. @FormUrlEncoded
  33. @POST
  34. Call<ResponseBody> executePost(@Url String url, @FieldMap Map<String, String> map);
  35. /**
  36. * 流式下载,不加这个注解的话,会整个文件字节数组全部加载进内存,可能导致oom
  37. */
  38. @Streaming
  39. @GET
  40. Call<ResponseBody> download(@Url String fileUrl, @HeaderMap Map<String, String> headers);
  41. }