HttpClient
- Kotlin kursu
- İleri seviye
- Ders 14/83
- 5 dk
HttpClient yapılandırmasını öğrenirsin.
HttpClient yapılandırması
Bir HttpClient oluştururken config bloğu açıp plugin'ler eklersin. En yaygın plugin ContentNegotiation'dır; JSON serialization'ı otomatik yapar.
Örnek: HttpClient { install(ContentNegotiation) { json() } }. Bu blok JSON gövdesini otomatik olarak Kotlin nesnesine çevirir. Plugin'ler install fonksiyonu ile eklenir. Engine değiştirmek için HttpClient(CIO) { ... } gibi çağrı yapılır. Yapılandırma merkezî olduğu için tüm istekler aynı davranışı paylaşır.
ContentNegotiation ile JSON
ContentNegotiation, HTTP gövdelerini otomatik olarak Kotlin nesnelerine çeviren plugin'dir. json() ile kotlinx.serialization kullanılır.
Bu plugin eklendiğinde client.get<User>(url) çağrısı doğrudan User nesnesi döndürür. Gövdeyi el ile ayrıştırmak gerekmez. Aynı şekilde client.post gövdesi de otomatik serileştirilir. Plugin, Content-Type başlığına bakarak doğru formatı seçer. JSON yanıtı için application/json, XML için application/xml kullanılır.
Uygulama HttpClient'i yapılandır ve yazdır
HttpClient { install(ContentNegotiation) { json() } } ile istemciyi yapılandır. println("Yapılandırıldı") yazdır, sonra client.close() ile kapat.
Başlangıç kodu
// HttpClient yapılandırma
// buraya yaz
import io.ktor.client.*
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
fun main() {
}Örnek çözüm
fun main() {
val client = HttpClient {
install(ContentNegotiation) { json() }
}
println("Yapılandırıldı")
client.close()
}Beklenen çıktı
Yapılandırıldı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 install çağrısını tamamla
HttpClient {
____(ContentNegotiation) { json() }
}
HttpClient {
install(ContentNegotiation) { json() }
}
Açıklama: install ile plugin eklenir.
2 HttpClient plugin eşle
| Kavram | Anlamı |
|---|---|
ContentNegotiation |
JSON çevirir |
install |
Plugin ekler |
json() |
Format seçer |
HttpClient |
İstemci |
3 HttpClient'e plugin eklemek için hangi fonksiyon kullanılır?
- use
- install Doğru cevap
- with
- add
Açıklama: install ile plugin eklenir.