首页 > 解决方案 > 将 OkHttp 的 HttpUrl 转换为相对 url

问题描述

如何将 HttpUrl 转换为相对 url,例如https://example.com/fo/o?bar#baz转换为/fo/o?bar#baz

标签: okhttp

解决方案


没有一个很好的解决方案。最明显的之一

  1. 从你自己的组件构建它,比如路径、查询、片段。
  2. 应用剥离正则表达式。
  3. 删除一个公共前缀。

所以选项3

  val u = "https://example.com/fo/o?bar#baz".toHttpUrl()
  val u2 = u.resolve("/")
  println(u) // https://example.com/fo/o?bar#baz
  println(u2) // https://example.com/

  println(u.toString().substring(u2.toString().length - 1)) // /fo/o?bar#baz

推荐阅读