Android OkHttp addPathSegment替换斜杠

JY2*_*Y2k 8 android okhttp

我正在使用OkHttp 2.4.0.

HttpUrl url = new HttpUrl.Builder()
            .scheme("https")
            .host("www.something.com")
            .addPathSegment("/api/v1/doc")
            .build();
Run Code Online (Sandbox Code Playgroud)

预期的网址是:https://www.something.com/api/v1/doc

我得到的是:https://www.something.com%2Fapi%2Fv1%2Fdoc

pathSegment中的"/"替换为"%2F".为什么会发生这种情况以及如何避免这种情况,因为我收到了无效的Url异常,因为apache不允许在网址中使用"%2F".

PAD*_*PAD 14

这个解决方案有点优雅,在这种情况下OkHttp不会替换斜杠:)

HttpUrl url = new HttpUrl.Builder()
    .scheme("https")
    .host("www.something.com")
    .addPathSegments("api/v1/doc")
    .build();
Run Code Online (Sandbox Code Playgroud)


dor*_*ors 11

试试这个:

    HttpUrl url = new HttpUrl.Builder()
        .scheme("https")
        .host("www.something.com")
        .addPathSegment("api")
        .addPathSegment("v1")
        .addPathSegment("doc")
        .build();
Run Code Online (Sandbox Code Playgroud)

  • 你也可以做`.addPathSegments("api/v1/doc");`(注意S) (6认同)