网络通话就像这样
@GET("/api/video/{slug}/show")
void getVideoData(@Path("slug") String slug,Callback<VideoContainerGSON>cb);
现在我需要在&#34; / api&#34;之前添加可靠的路径。 e.g:
/en/api/video/{slug}/show
或者
/sp/video/{slug}/show
该参数是全局范围的,因此无需设置更改,所有网络呼叫都将使用相同的语言路径 问题:有没有方法可以在没有方法签名的情况下更改它,或者我必须将方法签名更改为
@GET("/{lang}/api/video/{slug}/show")
void getVideoData(@Path("lang") String lang, @Path("slug") String slug,Callback<VideoContainerGSON>cb);
答案 0 :(得分:3)
您可以使用字符串xmls来解决您的问题。您可以将api根目录放在string.xml中,并在其他xmls中覆盖它,例如:
<string name="api_root">http://yourapiroot.com/en</string>
<string name="api_root">http://yourapiroot.com/sp</string>
当您从资源创建适配器集api root时,如下面的代码所示:
new RestAdapter.Builder()
.setEndpoint(context.getString(R.string.api_root))
.build()
如果你不想用设备语言制作其余的api,你可以设置params,用于在你构建的方法中定义api根中的语言RestAdapter
之后,您从/api/...
开始路径,例如:
@GET("/api/video/{slug}/show")
void getVideoData(@Path("slug") String slug,Callback<VideoContainerGSON>cb);