使用 OkHttp3 在查询参数之前强制尾部斜杠

Forcing trailing slash before query params with OkHttp3

我有一个 String url 查询(例如 https://example.com/path/segments?q1=1&q2=2)。如果使用 okhttp 3 不存在,我需要在查询之前添加尾部斜杠 (https://example.com/path/segments/?q1=1&q2=2)。我该怎么做?

在使用字符串之前,您只需对 ? 进行替换并将其替换为 /? 即可获得所需的结果。

这是 Kotlin 中的示例

var url:String = "https://example.com/path/segments?q1=1&q2=2"
url = url.replace("?", "/?")

这应该有效,因为查询变量应该经过 urlencoded,并且在您的网址中应该只出现一次 ?

使用httpUrlBuilder.addPathSegment("") 强制在路径末尾添加斜线。 HttpUrl 将每个路径段建模为前缀为 /,空字符串表示单独的斜杠。