Retrofit2的url控制

0x81 Retrofit的url匹配方案

Retrofit是Square推出的Restful网络请求框架,由于它可以和RxJava无缝衔接而非常受开发者欢迎。Retrofit基于同属Square旗下的OkHttp这一高效网络请求库,Android4.4开始Google甚至将其作为系统默认的网络请求库。

Retrofit使用Builder初始化时,我们通常需要传入一个BaseUrl,而这个url就是我们进行http请求的基础路径。Retrofit2的url有几个规则:

  1. BaseUrl遵循Rest规范且需以’/‘结尾
    使用http://cloud.in/api/是正确的,而http://cloud.in/api会抛出异常。

  2. @GET/@POST等注解路径以’/‘开头
    @GET("/apiv3/join/3/"),则最终请求url为http://cloud.in/apiv3/join/3/

  3. @GET/@POST等注解路径不以’/‘开头
    @POST("/find/4/name/"),则最终url为http://cloud.in/api/find/4/name/

  4. @GET/@POST等注解路径以’http’开头
    @DELETE(http://cloud.in/api/member/45177/),则最终url为http://cloud.in/api/member/45177/

使用这种特殊的匹配规则,有的时候可以满足我们特殊的需求。