CodeBlanks Logo Icon CodeBlanks

POST

client.post ile POST isteği öğrenirsin.

POST isteği

Bir POST isteği, sunucuya yeni veri gönderir. Ktor'da client.post(url) ile yapılır; gövde setBody ile eklenir.

Örnek: client.post("https://api.example.com/users") { setBody(newUser) }. Burada newUser bir Kotlin nesnesidir; ContentNegotiation plugin'i onu JSON'a çevirir. POST, yeni kaynak oluşturmak için kullanılır; PUT ise varolanı günceller. Yanıt yine HttpResponse'dur. Gövde türü belirlemek için contentType(ContentType.Application.Json) kullanılır.

Uygulama POST isteği yapıp yazdır

Bir HttpClient oluştur. val response = client.post("https://api.example.com/users") ile POST isteği yap. println("Gönderildi") yazdır. Sonra client.close() ile kapat.

Başlangıç kodu

Main.kt
// POST isteği
// buraya yaz
import io.ktor.client.*
import io.ktor.client.request.*

fun main() {
    
}

Örnek çözüm

Main.kt
fun main() {
    val client = HttpClient()
    val response = client.post("https://api.example.com/users")
    println("Gönderildi")
    client.close()
}

Beklenen çıktı

Gönderildi

Gövde ve Content-Type

POST isteğinde gövde göndermek için setBody(data) kullanılır. Gövde türünü belirtmek için contentType(ContentType.Application.Json) eklenir.

ContentNegotiation plugin'i eklendiyse, Kotlin nesnesi otomatik olarak JSON'a çevrilir. Örnek: client.post(url) { contentType(ContentType.Application.Json); setBody(user) }. Gövde UTF-8 olarak kodlanır; özel karakterler kaçışlanır. Yanıt gövdesi yine response.body<T>() ile okunur. Doğru Content-Type seçmek sunucunun gövdeyi tanıması için anlamlıdır.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 POST ile PUT arasındaki temel fark nedir?

  • POST okur, PUT yazar
  • POST daha hızlıdır
  • PUT sadece siler
  • POST yeni kaynak oluşturur, PUT günceller Doğru cevap

Açıklama: POST yeni kaynak, PUT varolanı günceller.

2 setBody çağrısını tamamla

Soru
client.post(url) {
    ____(user)
}
Cevap
client.post(url) {
    setBody(user)
}

Açıklama: setBody ile gövde gönderilir.

3 POST parçalarını eşle

Kavram Anlamı
client.post İstek atar
setBody Gövde ekler
contentType Tür belirler
HttpResponse Yanıt türü

İleri seviye bölümündeki tüm dersler