具有动态路径的KTor URLBuilder编码路径

时间:2019-02-25 09:16:52

标签: android kotlin ktor kotlin-multiplatform

我正在尝试使用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)}替换任何运行时路径值。

0 个答案:

没有答案