3 puan yazan GN⁺ 2024-01-30 | 1 yorum | WhatsApp'ta paylaş

--libcurl kullanımı

  • libcurl kullanımı önerilir: Kullanıcıların önce curl komut satırı aracını kullanarak istedikleri aktarımı denemeleri, kabaca istedikleri gibi çalıştığında ise komut satırına --libcurl [dosya_adı] seçeneğini ekleyerek yeniden çalıştırmaları önerilir.
  • Kod üretimi: --libcurl komut satırı seçeneği, verilen dosya adıyla bir C programı üretir. Bu C programı, curl komut satırı aracının gerçekleştirdiği aktarımı yürütmek için libcurl kullanır.
  • İstisnalar ve farklar: Her zaman %100 aynı sonucu vermese de, kullanmak isteyeceğiniz libcurl seçenekleri ve ek argümanlar için mükemmel bir ilham kaynağı olabilir.

Örnek kod

  • Çalıştırma örneği: curl http://example.com --libcurl example.c komutu çalıştırıldığında, mevcut dizinde example.c dosyası oluşturulur.
  • Üretilen kod: Üretilen kod, curl_easy_setopt() kullanılarak yapılan çeşitli seçenek ayarlarını içerir; bazı seçenekler kaynaktan kolayca üretilemediği için bunları kullanıcının kendisi uygulaması gerekebilir ya da hiç kullanmayabilir.

GN⁺ görüşü

  • libcurl'ün faydası: Bu özellik, geliştiricilerin komut satırında çalışan curl komutlarını kolayca C programlarına dönüştürmesini sağlayarak libcurl kullanan uygulamaların geliştirilmesini hızlandırır.
  • Kod üretiminin avantajı: Otomatik üretilen kod, geliştiricilerin libcurl API'sini daha hızlı anlamasına ve uygulamasına yardımcı olabilir.
  • Öğrenme aracı olarak değeri: Başlangıç seviyesindeki yazılım mühendislerine libcurl seçeneklerini ve ağ programlamasının gerçek uygulama örneklerini gösteren iyi bir öğrenme kaynağı olabilir.

1 yorum

 
GN⁺ 2024-01-30
Hacker News görüşleri
  • Tarayıcının ağ sekmesinde ilgini çeken isteği bulup "Copy as cURL" desenini kullanmak faydalı. Böylece bir curl komutu oluşturabilir ve bunu o komutu kullanan dilin istek koduna dönüştürebilen bir siteyi (curlconverter.com) kullanabilirsin. curl, başka dillere çevrilebilen bir "ara gösterim" gibi işlev görüyor.
  • Bir programın kaynak kodunu komut satırı arayüzüne yazdıran bir bayrağın olması gerçekten çok hoş bir özellik. Bu, arabanın kaputunu açıp içini göstermeye benziyor; nasıl çalıştığını daha iyi anlamanı ve ihtiyaçlarına göre değiştirmeni sağlıyor. Kullanıcının istediği gibi ayarlayabilmesi veya ekleme yapabilmesi açısından kullanıcı dostu.
  • Microsoft Office'in Visual Basic makrolarının başarılı olmasının nedenlerinden biri de buna benzer bir özellikti. Word, Excel vb. içinde bir işi yaptıktan sonra üretilen makroyu kod olarak alıp kendi ihtiyaçlarına göre özelleştirebiliyordun. Bu basit ama güçlü bir fikir ve bunu curl içinde de görmek mümkün.
  • curl'ü derlemek için libcurl ile linkleme yapmasını belirtmek gerekir. Örneğin gcc içinde -lcurl seçeneği kullanılır. Bununla IP adresini yazdırabilir ve ip_fetcher.c dosyasını oluşturabilirsin; ardından gcc ile derleyip çalıştırılabilir dosya üzerinden IP adresini alabilirsin.
  • Hurl, libcurl kullanan açık kaynaklı bir CLI ve HTTP isteklerini test etmek için düz metin kullanıyor. libcurl'ün kararlılığından ve en iyi özelliklerinden (HTTP/3 dahil) yararlanıyor; ayrıca istekleri zincirleme, yanıtlardan veri yakalama ve aktarma, yanıtları test etme (JSONPath, XPath vb.) gibi özellikler ekliyor. REST/SOAP/GraphQL API'lerine istek göndermek için sözdizimsel kolaylıklar sağlıyor ama özünde libcurl var. Verbose seçeneğini kullanınca curl komutunu grep ile yakalayabiliyorsun.
  • Keşke ffmpeg'de de böyle bir özellik olsa.
  • Daniel Stenberg ayrıntılara ve geliştirici/kullanıcı deneyimine çok önem veriyor; bu düzeydeki özen gerçekten etkileyici.
  • Daniel Stenberg'in curl komut satırı seçeneklerinin çoğunu bizzat anlattığı 3 saatlik videoda bu seçenekten de bahsediliyor.
  • Gönderi başlığında iki kısa çizgi (--) kullanılmalı; em dash ile kısa çizgi kombinasyonu (—-) doğru değil.
  • Bir yapay zeka fanatiğinin coşkulu görüşüne göre, ChatGPT'nin ortaya çıkmasıyla birlikte artık curl çalıştırılabilir dosyasına yarım yamalak quine'lar gömmeye gerek kalmadı ve bu özellik demode oldu.