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