“Client for URLs” kısaltması olan cURL yazılım uygulaması, geliştiricilerin veri aktarımlarını yönetmeleri için kapsamlı bir işlevsellik paketi sunar. İki farklı modda çalışır: temel etkileşimler için kullanıcı dostu bir komut satırı arayüzü ve programlama projelerine sorunsuz bir şekilde entegre edilebilen güçlü bir kitaplık.
Apidog'un sizin gibi geliştiricilere neler sunabileceği hakkında daha fazla bilgi edinmek için aşağıdaki düğmeye tıklayın!
curl_init()'in Resmi Tanımı
Resmi PHP web sitesine göre, curl_init işlevi bir cURL oturumu başlatır ve curl_setopt(), curl_exec() ve curl_close() işlevleriyle kullanılmak üzere bir cURL tanıtıcısı döndürür.
İlgili Parametreler
url
Bir URL sağlarsanız, CURLOPT_URL
seçeneği değerine ayarlanır. Bu seçeneği ayrıca curl_setopt() işlevini kullanarak manuel olarak da ayarlayabilirsiniz.
Ancak, open_basedir
ayarlanmışsa, file
protokolünün cURL'ün kendisi tarafından devre dışı bırakıldığını unutmayın.
Dönüş Değerleri
curl_init() işlevi başarı durumunda bir cURL tanıtıcısı ve hatalarda false
döndürür.
POST İsteği Nedir?
Web iletişimi bağlamında, Hipermetin Aktarım Protokolü (HTTP), veri alışverişinin temelini oluşturur. HTTP içinde kullanılan önemli bir yöntem, POST isteğidir ve özellikle bir web sunucusuna veri aktarımı için tasarlanmıştır. Bu belge, POST isteğinin işlevini açıklayan ve onu muadili olan GET isteğiyle karşılaştıran POST isteğinin inceliklerini inceler.

POST İsteklerinin Temel Özellikleri
Veri İletimi
POST istekleri, özellikle bir web sunucusuna veri göndermek için tasarlanmıştır. Bu veriler, yeni kaynaklar oluşturmak, mevcut bilgileri güncellemek veya verileri silmek için kullanılabilir.
Veri Yerleşimi
POST istekleri, verileri URL'nin içinde dahil etmek yerine istek gövdesinde gönderir. Bu ayrım, özellikle parolalar veya kredi kartı bilgileri gibi URL'de görünmeyen hassas bilgiler için güvenliği artırır.
Durum Değiştirme
POST istekleri tipik olarak sunucu tarafında bir değişiklikle sonuçlanır. Bu, yeni bir kullanıcı hesabı oluşturmayı, bir dosya yüklemeyi, bir alışveriş sepetine yeni bir ürün eklemeyi veya bir yorumu silmeyi içerebilir.
Önbelleğe Alınamaz
POST istekleri verileri değiştirdiğinden, web tarayıcıları tipik olarak bunları önbelleğe almaz. Bu, en son bilgilerin her zaman sunucuya gönderilmesini sağlar ve eski verilerin kullanılmasını engeller.
curl_init() POST İsteklerinin Kod Örnekleri
curl_init()
işleviyle POST istekleri yapmak isterseniz başvurabileceğiniz bazı PHP kodlama örnekleri şunlardır.
Örnek 1 - Basit Metin Verileri Gönderme
Bu örnek, bir oturum açma komut dosyasına temel bir kullanıcı adı ve parola gönderir.
<?php
$url = "https://www.example.com/login.php";
$username = "your_username";
$password = "your_password";
$data = array(
"username" => $username,
"password" => $password
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // İsteği POST'a ayarla
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // POST verilerini ayarla
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Yanıtı döndür
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "Giriş başarılı!";
} else {
echo "Hata: " . curl_error($ch);
}
?>
Kod açıklaması:
- Hedef URL'yi, kullanıcı adını ve parolayı tanımlarız.
- Kullanıcı adını ve parolayı içeren bir
$data
dizisi oluştururuz. curl_init($url)
ile curl tanıtıcısını başlatırız.curl_setopt($ch, CURLOPT_POST, 1)
kullanarak istek yöntemini POST olarak ayarlarız.curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data))
kullanarak POST verilerini ayarlarız.http_build_query
, veri dizisini URL kodlu bir dizeye dönüştürür.- Yanıtı doğrudan yazdırmak yerine yakalamak için
CURLOPT_RETURNTRANSFER
'ı 1 olarak ayarlarız. curl_exec($ch)
ile isteği yürütür ve yanıtı$response
'da saklarız.curl_close($ch)
ile curl tanıtıcısını kapatırız.- Son olarak, yanıtın var olup olmadığını kontrol eder ve bir başarı mesajı veya hata görüntüleriz.
Örnek 2 - JSON Verileri Gönderme
Bu örnek, bir kayıt komut dosyasına kullanıcı bilgilerini içeren bir JSON nesnesi gönderir.
<?php
$url = "https://www.example.com/register.php";
$user_data = array(
"name" => "John Doe",
"email" => "john.doe@example.com",
"password" => "your_password"
);
$data_json = json_encode($user_data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // İsteği POST'a ayarla
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json); // POST verilerini JSON olarak ayarla
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Yanıtı döndür
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', // İçerik türünü JSON olarak ayarla
));
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "Kayıt başarılı!";
} else {
echo "Hata: " . curl_error($ch);
}
?>
Kod açıklaması:
- Hedef URL'yi ve kullanıcı verileri dizisini tanımlarız.
json_encode
kullanarak kullanıcı verilerini bir JSON dizesine dönüştürürüz.- Curl tanıtıcısını başlatır ve istek yöntemini POST olarak ayarlarız.
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json)
kullanarak POST verilerini ayarlarız.- Yanıtı yakalamak için
CURLOPT_RETURNTRANSFER
'ı 1 olarak ayarlarız. - Sunucuya verilerin JSON formatında olduğunu bildirmek için özel bir başlık
Content-Type: application/json
ayarlarız. - İsteği yürütür ve önceki örnekte olduğu gibi curl tanıtıcısını kapatırız.
- Son olarak, bir yanıtı kontrol eder ve bir başarı mesajı veya hata görüntüleriz.
Örnek 3 - Özel Başlıklar Ayarlama ve Yönlendirmeleri Takip Etme
Bu örnek, özel başlıklarla bir POST isteği gönderir ve yönlendirmeleri takip eder.
<?php
$url = "https://www.example.com/login.php";
$data = array(
"username" => "your_username",
"password" => "your_password"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // İsteği POST'a ayarla
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Yanıtı döndür
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer YOUR_API_KEY', // Özel başlık ayarla
));
// Yönlendirmeleri 3 defaya kadar takip et
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "Giriş başarılı!";
} else {
echo "Hata: " . curl_error($ch);
}
?>
Kod açıklaması:
- Giriş URL'sini ve kullanıcı verilerini tanımlarız.
- Önceki gibi curl tanıtıcısını ve POST isteğini ayarlarız.
CURLOPT_HTTPHEADER
kullanarak bir yetkilendirme belirteciyle özel bir başlık oluştururuz.CURLOPT_FOLLOWLOCATION
ile yönlendirmeleri takip etmeyi etkinleştirir veCURLOPT_MAXREDIRS
ile 3 ile sınırlarız.
Unutulması Gereken Not
Lütfen yukarıdaki kod örneklerinin basitleştirildiğini ve uygulamanızın ihtiyaçlarına uyacak şekilde daha fazla değişiklik gerektireceğini unutmayın, bu nedenle bunları IDE'lerinize kopyalayıp yapıştırmayın.
Resmi belgeler için şuraya göz atabilirsiniz: https://www.php.net/manual/en/book.curl.php

Apidog - cURL Komutlarını Kolaylıkla İçe Aktarın
Apidog, kullanıcılara tüm API yaşam döngüsü için gerekli tüm araçları sağlayan gelişmiş bir API geliştirme platformudur. Apidog ile API'leri tek bir uygulama içinde oluşturabilir, hata ayıklayabilir, taklit edebilir ve belgeleyebilirsiniz.

cURL komutlarını Apidog'a nasıl içe aktarabileceğinize bir göz atalım!
cURL Komutlarını Apidog'a Zahmetsizce İçe Aktarın

Apidog, cURL komutlarını Apidog'a içe aktarmak isteyen kullanıcıları destekler. Boş bir projede, Apidog penceresinin sol üst kısmındaki mor +
düğmesine tıklayın ve cURL İçe Aktar
'ı seçin.

cURL komutunu ekranınızda görüntülenen kutuya kopyalayıp yapıştırın.

Başarılı olursa, cURL komutunu bir API isteği biçiminde görüntüleyebilmelisiniz.
Apidog ile PHP Kodu Oluşturun
PHP programlama dilinde daha önce kodlama deneyiminiz yoksa, korkmayın! Apidog, geliştiricilere çeşitli diller için bir musluk sağlayan bir kod oluşturma özelliğine sahiptir!

İlk olarak, herhangi bir API veya istekte </> Kod Oluştur
düğmesini bulun ve açılır listeden İstemci Kodu Oluştur
'u seçin.

Ardından, PHP'yi seçin ve cURL bölümünü bulun. Artık cURL için oluşturulan kodu görmelisiniz. Tek yapmanız gereken, onu IDE'nize (Entegre Geliştirme Ortamı) kopyalayıp yapıştırmak ve uygulamanızı geliştirmeye devam etmektir.
Sonuç
curl_init()
ile POST isteklerinde ustalaşmak, geliştiriciler için güçlü bir aracın kilidini açar. Web sunucularına veri göndermenizi sağlar ve kullanıcı hesapları oluşturma, dosya yükleme ve form gönderme gibi eylemleri etkinleştirir. POST isteklerinin temel kavramlarını ve curl_init()
'in işlevlerini anlayarak, çeşitli web etkileşimleri için özel çözümler oluşturabilirsiniz.
Unutmayın, curl_init()
, farklı formatlarda veri göndermenize, özel başlıklar ayarlamanıza ve dosya yüklemeleri ve yönlendirmeler gibi senaryoları işlemenize olanak tanıyan esnek bir yaklaşım sunar. Bu yeni bilgiyle, web uygulamalarınızın yeteneklerini geliştirmek için güvenle POST isteklerinden yararlanabilirsiniz.