Android OkHttp addPathSegment替换斜杠

时间:2015-07-13 13:22:42

标签: android okhttp

我正在使用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"在网址中。

3 个答案:

答案 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();