0Pricing
Java Academy · Ders

İstek Gövdeleri ve Üst Bilgiler

POST verileri gönderin ve üst bilgileri ayarlayın

İstek Gövdeleri ve Üst Bilgiler, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

İstek Gövdeleri ve Üstbilgileri

GET isteklerinin nadiren gövdeye ihtiyacı olur, ancak POST, PUT ve PATCH isteklerinde gövde gerekir. JDK HTTP istemcisi, istek gövdelerini sağlamak için BodyPublisher nesnelerini ve üstbilgileri ayarlamak için oluşturucu yöntemlerini kullanır.

Bu derste veri göndermeyi ve Content-Type gibi üstbilgileri denetlemeyi ele alacağız.

BodyPublishers.ofString

En basit yayınlayıcı bir dize gövdesi gönderir. Bunu istek oluşturucusundaki POST(...) yöntemine geçirin.

BodyPublishers.noBody(), gövdesiz istekler için kullanılır.

import java.net.URI;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;

public class Main {
    public static void main(String[] args) {
        String json = "{\"name\":\"Ada\"}";
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://example.com/users"))
            .POST(BodyPublishers.ofString(json))
            .build();
        System.out.println("Method: " + request.method());
    }
}

Tek Bir Üstbilgi Ayarlama

Tek bir üstbilgi eklemek için header(name, value) kullanın. JSON göndermek için neredeyse her zaman Content-Type ayarlarsınız.

import java.net.URI;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;

public class Main {
    public static void main(String[] args) {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://example.com/users"))
            .header("Content-Type", "application/json")
            .POST(BodyPublishers.ofString("{}"))
            .build();
        System.out.println("Has Content-Type: " +
            request.headers().firstValue("Content-Type").isPresent());
    }
}

Bir Kerede Birden Çok Üstbilgi

headers(name1, value1, name2, value2, ...), tek bir çağrıyla birkaç üstbilgi ayarlar. Argüman sayısı çift olmalıdır; aksi hâlde IllegalArgumentException fırlatılır.

import java.net.URI;
import java.net.http.HttpRequest;

public class Main {
    public static void main(String[] args) {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://example.com"))
            .headers(
                "Accept", "application/json",
                "Accept-Language", "en-US")
            .GET()
            .build();
        System.out.println(request.headers().map().keySet());
    }
}

Yetkilendirme Üstbilgileri

Bearer belirteçleri Authorization üstbilgisi aracılığıyla gönderilir. Değeri bir dize olarak oluşturun; ham belirteci hiçbir zaman günlüğe kaydetmeyin.

public class Main {
    public static void main(String[] args) {
        String token = "abc123";
        String headerValue = "Bearer " + token;
        System.out.println("Authorization: Bearer ***");
        System.out.println("Length: " + headerValue.length());
    }
}

PUT ve DELETE

Oluşturucuda özel yöntemler vardır: PUT(publisher), DELETE() ve PATCH gibi diğer her şey için genel method(name, publisher) yöntemi.

import java.net.URI;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;

public class Main {
    public static void main(String[] args) {
        HttpRequest patch = HttpRequest.newBuilder()
            .uri(URI.create("https://example.com/users/1"))
            .method("PATCH", BodyPublishers.ofString("{\"active\":true}"))
            .build();
        System.out.println("Method: " + patch.method());
    }
}

Form Kodlamalı Gövdeler

application/x-www-form-urlencoded verileri için gövde dizesini elle oluşturur, her değere URL kodlaması uygular ve ardından bunu bir dize olarak yayınlarsınız.

import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) {
        String body = "name=" + URLEncoder.encode("Ada Lovelace", StandardCharsets.UTF_8)
            + "&role=" + URLEncoder.encode("engineer", StandardCharsets.UTF_8);
        System.out.println(body);
    }
}

Dosya Gövdesi Gönderme

BodyPublishers.ofFile(path), bir dosyayı tamamını belleğe yüklemeden istek gövdesi olarak akış halinde aktarır — yüklemeler için idealdir.

import java.net.URI;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.nio.file.Path;

public class Main {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://example.com/upload"))
            .header("Content-Type", "application/octet-stream")
            .POST(BodyPublishers.ofFile(Path.of("data.bin")))
            .build();
        System.out.println("Upload request built");
    }
}

Bayt Dizisi Gövdeleri

Bellekte zaten baytlarınız varsa BodyPublishers.ofByteArray(byte[]) bunları doğrudan gönderir. Bu, çalışma zamanında oluşturulan ikili yükler için kullanışlıdır.

import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) {
        byte[] payload = "raw-bytes".getBytes(StandardCharsets.UTF_8);
        // BodyPublishers.ofByteArray(payload) would wrap these bytes
        System.out.println("Payload size: " + payload.length + " bytes");
    }
}

Kısıtlanmış Üstbilgiler

İstemci, güvenlik nedeniyle Host, Content-Length, Connection ve Upgrade gibi belirli üstbilgileri ayarlamanızı engeller. Bunları ayarlamaya çalışmak IllegalArgumentException fırlatır — istemci bunları kendi yönetir.

Hepsini Bir Araya Getirme

Tipik bir JSON POST isteği, bir gövde yayınlayıcıyı ve içerik türü üstbilgisini birleştirir:

  • .POST(BodyPublishers.ofString(json))
  • .header("Content-Type", "application/json")
  • Gerekirse .header("Authorization", "Bearer ...") ekleyin

Hızlı Kontrol

İstek gövdelerini ve üstbilgileri anlayıp anlamadığınızı sınayın.

Özet

Veri göndermeyi ve üstbilgileri denetlemeyi öğrendiniz:

  • BodyPublishers.ofString / ofByteArray / ofFile istek gövdelerini sağlar.
  • POST / PUT / DELETE / method(...) HTTP fiilini seçer.
  • header(...) ve headers(...) istek üstbilgilerini ayarlar.
  • JSON ve form verileri için Content-Type ayarlayın; belirteçler için Authorization kullanın.
  • Bazı üstbilgiler (Host, Content-Length) kısıtlıdır ve istemci tarafından yönetilir.

Sıkça Sorulan Sorular

“İstek Gövdeleri ve Üst Bilgiler” dersi ücretsiz mi?

Evet — “İstek Gövdeleri ve Üst Bilgiler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“İstek Gövdeleri ve Üst Bilgiler” dersinde ne öğreneceğim?

POST verileri gönderin ve üst bilgileri ayarlayın Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“İstek Gövdeleri ve Üst Bilgiler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. java.net.http.HttpClient
  2. Eşzamansız İstekler
  3. İstek Gövdeleri ve Üst Bilgiler
  4. Yanıtları İşleme
← Java Academy Sayfasına Dön