ktor中host和baseurl的区别

Diffrence between host and baseurl in ktor

我无法完全理解 ktor 中 hostbaseUrl 之间的区别。我需要为我的项目设置一个 baseURL,我已经解决了 this and this youtrack 问题,但它们都提出了一些不同的方法,我不知道该选择什么。我可以在 defaultrequest 中设置 host = "baseurl" 然后简单地使用

httpClient.post<T> {
    url("suffix here")
}

并且有效。但是我不确定这是否是正确的方法,如果是,那么这是否意味着主机与我们在改造和 okhttp 中使用的 baseURL 一样工作。

由于 URLBuilder.takeFromUnsafe() 的实施方式,您所做的工作有效。此函数负责将您的 "suffix here" 值解析为 url - 它通过仅设置它可以在您传入的字符串中识别的 url 部分来实现。请参阅URLParser.kt#28了解更多详情。

安全吗 - 是的。这是个好主意吗?我不这么认为。它是隐式的,依赖于未来的开发人员熟悉其他库(okhttp 和 retrofit)使用的 baseUrl 方法。