curl, yıllardır var olan ve sayısız kullanım alanına sahip harika araçlardan biridir. Günümüzde curl'ü toplu dosya indirme ve API test etme gibi işlerde sıkça kullanıyorum. Bazen testlerim, isteklerime farklı HTTP header'ları eklememi gerektiriyor. Bu yazıda, curl ile bir HTTP isteğine nasıl header ekleyeceğinizi adım adım anlatacağım.
curl ile bir isteğe header eklemenin en yaygın yolu -H (veya --header) flag'ini kullanmaktır. Örneğin, bir GET isteğine 'accept: application/json' header'ı eklemek için şu komutu kullanabilirsiniz: 'curl -H "accept: application/json" https://api.example.com/endpoint'. Aynı anda birden fazla header eklemek isterseniz, her biri için ayrı bir -H flag'i kullanmanız yeterlidir.
Pratik bir örnek vermek gerekirse, MetaMask NFT API'sine bir istek gönderelim. Bu API, 'accept' ve 'Version' header'larını bekliyor. Komutumuz şöyle olacak: 'curl -X 'GET' \ 'https://nft.api.cx.metamask.io/collections?chainId=1' \ -H 'accept: application/json' \ -H 'Version: 1''. Burada -X 'GET' ile HTTP metodunu belirtiyor, ardından URL'yi ve -H ile header'ları ekliyoruz.
Sonuç ve Değerlendirme
Header eklerken dikkat etmeniz gereken bazı noktalar var. Header değerleri çift tırnak içine alınmalıdır. Eğer header değeri boşluk içeriyorsa, tırnak kullanmak zorunludur. Ayrıca, aynı header'ı birden fazla kez eklemek isterseniz, curl bunu otomatik olarak tek bir header'da birleştirir. Ancak bu davranışı değiştirmek için --compressed gibi flag'ler kullanabilirsiniz.
curl ayrıca, Content-Type, Authorization gibi yaygın header'lar için özel flag'ler de sunar. Örneğin, 'Authorization: Bearer
Header eklemenin yanı sıra, curl ile isteklerinizdeki header'ları görmek için -v (verbose) flag'ini kullanabilirsiniz. Bu, gönderilen ve alınan tüm header'ları detaylı bir şekilde gösterir. Örneğin: 'curl -v -H "accept: application/json" https://api.example.com'. Bu, hata ayıklama ve API testlerinde oldukça kullanışlıdır.
Sonuç olarak, curl ile HTTP isteklerine header eklemek oldukça basittir ve -H flag'i ile yapılır. İster bir API'ye istek atıyor olun, ister özel bir header göndermek isteyin, bu yöntem işinizi görecektir. İyi çalışmalar!
Kaynak: davidwalsh.name