Ktor 参数与 DefaultRequest 2.X+
Ktor parameters with DefaultRequest 2.X+
我们从 KTOR 1.X 迁移到 2.X+ 并注意到我们不能再像这样添加默认参数:
defaultRequest {
if (internal) {
header(WebserviceConstants.KEY_TOKEN, getAccessToken())
parameter(WebserviceConstants.KEY_LANG, localeHelper.getLanguage())
parameter(WebserviceConstants.KEY_STORE, getStore(localeHelper))
}
host = hostAddress
url {
protocol = URLProtocol.HTTPS
}
}
我们仍然可以在每次调用时添加参数:
val response: HttpResponse = client.get("http://localhost:8080/products") {
parameter(WebserviceConstants.KEY_LANG, localeHelper.getLanguage())
parameter(WebserviceConstants.KEY_STORE, getStore(localeHelper))
}
但是如果我们每次调用都需要某些参数,那就很烦人了。我们尝试将它们添加为属性,并浏览了迁移指南以及我们能找到的任何文档。
还有其他方法吗?
您仍然可以通过访问 url
属性:
在 DefaultRequest
插件中添加参数
url.parameters.append(WebserviceConstants.KEY_LANG, localeHelper.getLanguage().toString())
url.parameters.append(WebserviceConstants.KEY_STORE, getStore(localeHelper).toString())
我们从 KTOR 1.X 迁移到 2.X+ 并注意到我们不能再像这样添加默认参数:
defaultRequest {
if (internal) {
header(WebserviceConstants.KEY_TOKEN, getAccessToken())
parameter(WebserviceConstants.KEY_LANG, localeHelper.getLanguage())
parameter(WebserviceConstants.KEY_STORE, getStore(localeHelper))
}
host = hostAddress
url {
protocol = URLProtocol.HTTPS
}
}
我们仍然可以在每次调用时添加参数:
val response: HttpResponse = client.get("http://localhost:8080/products") {
parameter(WebserviceConstants.KEY_LANG, localeHelper.getLanguage())
parameter(WebserviceConstants.KEY_STORE, getStore(localeHelper))
}
但是如果我们每次调用都需要某些参数,那就很烦人了。我们尝试将它们添加为属性,并浏览了迁移指南以及我们能找到的任何文档。
还有其他方法吗?
您仍然可以通过访问 url
属性:
DefaultRequest
插件中添加参数
url.parameters.append(WebserviceConstants.KEY_LANG, localeHelper.getLanguage().toString())
url.parameters.append(WebserviceConstants.KEY_STORE, getStore(localeHelper).toString())