簡體   English   中英

Kotlin - 如何迭代 map 或構建器塊內的列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM