我正在尝试使用ktor
为Multiplatform项目构建网络模块。
我对GET
请求的代码是这样的:
val result = httpClient.get<HttpResponse> {
url {
protocol = baseProtocol
host = baseUrl
encodedPath = urlPath
}
}
在某些情况下,我的路径包含一个/users/{user_id}
这样的用户ID。
我可以搜索并替换为字符串,并将此user_id
替换为实际值,但是还有其他方法可以执行此操作吗?任何ktor
特定方式。
例如,以Retrofit
为例:
@GET("users/{user_id}/")
SomeData getUserData(@Path("user_id") String userId);
编辑:添加更多代码
val result = httpClient.get<HttpResponse> {
url {
protocol = baseProtocol
host = baseUrl
var requestPath = request.requestPath.value
request.path?.forEach {
requestPath = requestPath.replace(it.first, it.second)
}
encodedPath = requestPath
if (request.parameters != null) {
parameters.appendAll(getParametersFromList(request.parameters))
}
}
request.path?.forEach { requestPath = requestPath.replace(it.first, it.second)}
替换任何运行时路径值。