Android 改装URL中存在重复的斜杠

Android 改装URL中存在重复的斜杠,android,url,path,retrofit,Android,Url,Path,Retrofit,我遇到了重复斜杠的问题,我想知道改造中是否有内置的解决方案 “我的服务器”提供了我们应该使用的基本URL,其外观如下:.setEndpoint(http://some.url.com/) 服务器还传递应该附加到该端点的路径URI(带有各种请求)。因此,我的服务器可能会发回/频道/视频 通过以下方法进行改造 @GET("/{uri}") void GET(@Header("Authorization") String authHeader, @Path(value = "uri", encode

我遇到了重复斜杠的问题,我想知道改造中是否有内置的解决方案

“我的服务器”提供了我们应该使用的基本URL,其外观如下:
.setEndpoint(http://some.url.com/)

服务器还传递应该附加到该端点的路径URI(带有各种请求)。因此,我的服务器可能会发回
/频道/视频

通过以下方法进行改造

@GET("/{uri}")
void GET(@Header("Authorization") String authHeader, @Path(value = "uri", encode = false) String uri,
         @Header("Cache-Control") String cacheHeaderValue, Callback<Object> callback);
@GET(“/{uri}”)
void GET(@Header(“Authorization”)字符串authHeader,@Path(value=“uri”,encode=false)字符串uri,
@标头(“缓存控制”)字符串cacheHeaderValue,回调);
这是有问题的,因为GET方法命中的URL是
http://some.url.com//channels/videos
在我的情况下无法正常工作

我尝试从我的基本端点手动剥离尾部斜杠-但我仍然看到一个重复的斜杠,我假设它是由
“/{uri}”
/channels/videos
产生的

我想我的问题可以通过删除
“/{uri}”
中的前导斜杠来解决,但这在改型中是不允许的。删除从服务器返回的路径URI中的前导斜杠并不完全可行

throw methodError(“URL路径\%s\”必须以“/”开头,路径)

Refundation.RefundationError:GET:URL路径“{uri}”必须以“/”开头。

这个问题还有其他解决方案吗?

相关链接:


此问题已在改装2.0.0-beta3中修复。它需要更改服务类中的方法签名/注释。原始GET方法的签名现在是:

@GET
Call<Object> GET(@Header("Authorization") String authHeader, @Url String uri,
                 @QueryMap Map<String, String> options, @Header("Cache-Control") String cacheHeaderValue);

为什么不删除端点URL中的/呢?像这样的
http://some.url.com
我尝试手动从我的基本端点中去掉尾随斜杠…
我也认为这会解决它,但它似乎来自注释中的前导斜杠以及我从服务器获得的路径。
public static String validateUri(String uri) {
  if (uri.charAt(0) == '/') {
      uri = uri.substring(1);
  }
  return uri;
}