Android OkHttp addPathSegment 替换斜杠
Android OkHttp addPathSegment replaces slashes
我正在使用 OkHttp 2.4.0。
HttpUrl url = new HttpUrl.Builder()
.scheme("https")
.host("www.something.com")
.addPathSegment("/api/v1/doc")
.build();
预期的 url 是:https://www.something.com/api/v1/doc
我得到的是:https://www.something.com%2Fapi%2Fv1%2Fdoc
pathSegment 中的“/”替换为“%2F”。为什么会发生这种情况以及如何避免这种情况,因为我得到一个无效的 Url 异常,因为 apache 不允许 url.
中的“%2F”
试试这个:
HttpUrl url = new HttpUrl.Builder()
.scheme("https")
.host("www.something.com")
.addPathSegment("api")
.addPathSegment("v1")
.addPathSegment("doc")
.build();
删除斜杠并像这样连接段:
HttpUrl url=new HttpUrl.Builder()
.scheme("https")
.host("www.something.com")
.addPathSegment("api")
.addPathSegment("v1")
.addPathSegment("doc")
.build();
这个解决方案更优雅一些,在这种情况下 OkHttp 不会替换斜杠 :)
HttpUrl url = new HttpUrl.Builder()
.scheme("https")
.host("www.something.com")
.addPathSegments("api/v1/doc")
.build();
我正在使用 OkHttp 2.4.0。
HttpUrl url = new HttpUrl.Builder()
.scheme("https")
.host("www.something.com")
.addPathSegment("/api/v1/doc")
.build();
预期的 url 是:https://www.something.com/api/v1/doc
我得到的是:https://www.something.com%2Fapi%2Fv1%2Fdoc
pathSegment 中的“/”替换为“%2F”。为什么会发生这种情况以及如何避免这种情况,因为我得到一个无效的 Url 异常,因为 apache 不允许 url.
中的“%2F”试试这个:
HttpUrl url = new HttpUrl.Builder()
.scheme("https")
.host("www.something.com")
.addPathSegment("api")
.addPathSegment("v1")
.addPathSegment("doc")
.build();
删除斜杠并像这样连接段:
HttpUrl url=new HttpUrl.Builder()
.scheme("https")
.host("www.something.com")
.addPathSegment("api")
.addPathSegment("v1")
.addPathSegment("doc")
.build();
这个解决方案更优雅一些,在这种情况下 OkHttp 不会替换斜杠 :)
HttpUrl url = new HttpUrl.Builder()
.scheme("https")
.host("www.something.com")
.addPathSegments("api/v1/doc")
.build();