Android – PATH中的改装和斜杠字符

Android – PATH中的改装和斜杠字符,第1张

概述我正在面临一个与Retrofit的问题,并希望找到一个合适的答案,作为唯一的方式,我可以想到它是相当丑陋和不实际. Retrofit PATH注释在开始时需要一个“/”(你可以从这个从库中提取的代码中读取: /** Loads {@link #requestUrl}, {@link #requestUrlParamNames}, and {@link #requestQuery}. */ pr 我正在面临一个与Retrofit的问题,并希望找到一个合适的答案,作为唯一的方式,我可以想到它是相当丑陋和不实际.

Retrofit PATH注释在开始时需要一个“/”(你可以从这个从库中提取的代码中读取:

/** Loads {@link #requestUrl},{@link #requestUrlParamnames},and {@link #requestquery}. */  private voID parsePath(String path) {    if (path == null || path.length() == 0 || path.charat(0) != '/') {      throw methodError("URL path \"%s\" must start with '/'.",path);    }

我所面临的问题是PATH部分来自响应对象中的后端,这意味着所有PATH的字符串已经从以前的其他响应中的后端格式化,如下所示:

Object : {    href: "/resources/login..."}

正如你所看到的,当包含这样的东西时,网址变得格格不定:

@GET("{/loginhref}")    voID login(@Encodedpath("loginhref") String loginhref,Callback<User> callback);

像“http://mybaseurl.com//resources/login”* double //在资源前面

这肯定会导致一些端点的问题,除了这样做之外,我不能想到一个非常简单的方法来解决这个问题:

a)修改我自己的改版版本以删除/字符检查(这是最后的手段)

b)在使用界面中的方法之前,截断href(我希望不惜一切代价避免这种方法,并且会在整个地方添加不必要的转换.

c)拦截请求并正确地形成URL,以防这种情况发生(真的很丑的解决方案).

任何想法,建议?

谢谢!

解决方法@H_404_30@ 我认为这个链接会帮你 Path Replacement

您的新实现将如下所示.

@GET("/")voID login(Callback<User> callback);

您可以提供自定义的端点实现,可以在其上更改相对路径.

public final class CustomEndpoint implements Endpoint {  private static final String BASE = "@R_404_6822@://192.168.1.64:5050/API/";  private String url;  private String href;        public CustomEndpoint(String href){      this.href = href;      url = BASE + this.href;  }  @OverrIDe public String getname() {    return "default";  }  @OverrIDe public String getUrl() {    if (url == null) throw new IllegalStateException("relative path not set.");    return url;  }}

用法如下

RestAdapter restAdapter = new RestAdapter.Builder()                .setEndpoint(new CustomEndPoint(object.href));then restadapter.create........

希望这将有助于您.

总结

以上是内存溢出为你收集整理的Android – PATH中的改装斜杠字符全部内容,希望文章能够帮你解决Android – PATH中的改装和斜杠字符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1133789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存