在我的设置中,我从对REST API的初始调用中获取所有资源路径。 我们使用这种模式,以便能够更改所有资源路径而不会破坏现有应用程序版本。
我一直在尝试使用Retrofit并尝试创建一个可以接受我传递的任何路径的字符串的方法。 我的尝试看起来像这样
@GET("/{path}")
public FooBar getFooBar(@Path("path") String path);
我接着尝试按以下方式调用它。
String path = "foo/bar";
api.getFooBar(path);
不幸的是,Retrofit会对路径替换进行URL编码,导致我最终向/foo%2Fbar
发出请求,而不是/foo/bar
。是否有办法禁用路径替换的URL编码或使替换跨越多个路径段?不幸的是,我甚至不知道有多少路径段,这全部由API控制。
@EncodedPath
现在已经被弃用了。 - Martin Marconcini@Path
及其标志之一。 - Jake Wharton@Path(value = "link", encode = false) String link
。 - alxsimo