ktor中host和baseurl的区别

Posted

技术标签:

【中文标题】ktor中host和baseurl的区别【英文标题】:Diffrence between host and baseurl in ktor 【发布时间】:2021-04-05 00:09:24 【问题描述】:

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

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

它有效。但我不确定这是否是正确的方法,如果是,这是否意味着主机与我们在改造和 okhttp 中使用的 baseURL 相同。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

嗨。感谢您的澄清。不知道我应该使用什么然后有什么建议吗?我见过一些使用 url($baseUrl\suffixhere) 的实时应用程序,但这对我来说似乎不是一个好主意

以上是关于ktor中host和baseurl的区别的主要内容,如果未能解决你的问题,请参考以下文章

从Environment.SpecialFolder.LocalApplicationData加载的文件设置BASEURL

部署YUM源仓库与NFS共享存储服务

将自定义标头设置为 websocket 请求 (ktor)

Ktor Netty 服务器发送空响应

Retrofit的使用

Ktor 启动示例错误