[英]Kotlin - how to iterate over a map or a list inside a builder block
可能是一個愚蠢的問題,但我想知道是否可以迭代 map 或構建器塊內的列表?
我正在構建HttpRequest
,我想在列表或標題的 Map 之上工作。 例如,讓我們想象一下這種情況:
val headers1 = hashMapOf("Content-type" to "application/json")
val headers2 = listOf("Content-type=application/json")
我真的更喜歡使用 Map 而不是傳遞String=String
的列表,但如果它更簡單或更簡潔易讀,我可以接受。
這是我構建 HttpRequest 的方式:
HttpRequest.newBuilder()
.version(HttpClient.Version.HTTP_1_1)
.timeout(Duration.ofSeconds(1))
.uri(URI.create(endpoint))
.method(method.value, HttpRequest.BodyPublishers.ofString(body))
.header(<inject headers here>)
.build()
是否可以在構建過程中添加/注入標頭?
您可以像這樣遍歷 map
val headers: Map<String, String> = /* ... */
HttpRequest.newBuilder()
.version(HttpClient.Version.HTTP_1_1)
.timeout(Duration.ofSeconds(1))
.uri(URI.create(endpoint))
.method(method.value, HttpRequest.BodyPublishers.ofString(body))
.apply {
headers.forEach { (key, value) -> setRequestHeader(key, value) }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.