3 คะแนน โดย GN⁺ 2024-01-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

การใช้ --libcurl

  • แนะนำให้ใช้ libcurl: แนะนำให้ผู้ใช้ลองใช้เครื่องมือบรรทัดคำสั่ง curl เพื่อทดสอบการรับส่งข้อมูลที่ต้องการก่อน และเมื่อทำงานได้ใกล้เคียงตามต้องการแล้ว ให้รันอีกครั้งโดยเพิ่มตัวเลือก --libcurl [ชื่อไฟล์] ในบรรทัดคำสั่ง
  • การสร้างโค้ด: ตัวเลือกบรรทัดคำสั่ง --libcurl จะสร้างโปรแกรมภาษา C โดยใช้ชื่อไฟล์ที่ระบุ โปรแกรม C นี้จะใช้ libcurl เพื่อทำการรับส่งข้อมูลแบบเดียวกับที่เครื่องมือบรรทัดคำสั่ง curl ได้ทำไว้
  • ข้อยกเว้นและความแตกต่าง: แม้จะไม่ตรงกันแบบ 100% เสมอไป แต่ก็สามารถให้แรงบันดาลใจที่ยอดเยี่ยมเกี่ยวกับตัวเลือก libcurl และอาร์กิวเมนต์เพิ่มเติมที่ต้องการใช้งาน

โค้ดตัวอย่าง

  • ตัวอย่างการรัน: เมื่อรันคำสั่ง curl http://example.com --libcurl example.c จะมีการสร้างไฟล์ example.c ขึ้นในไดเรกทอรีปัจจุบัน
  • โค้ดที่สร้างขึ้น: โค้ดที่สร้างขึ้นจะมีการตั้งค่าตัวเลือกต่าง ๆ ด้วย curl_easy_setopt() และบางตัวเลือกอาจสร้างออกมาเป็นซอร์สได้ไม่ง่ายนัก ทำให้ผู้ใช้ต้องนำไปเขียนเองหรือเลือกที่จะไม่ใช้

ความเห็นของ GN⁺

  • ประโยชน์ของ libcurl: ฟีเจอร์นี้ช่วยให้นักพัฒนาสามารถแปลงคำสั่ง curl ที่ทำงานได้บนบรรทัดคำสั่งให้เป็นโปรแกรมภาษา C ได้อย่างง่ายดาย จึงช่วยเร่งการพัฒนาแอปพลิเคชันที่ใช้ libcurl
  • ข้อดีของการสร้างโค้ด: โค้ดที่สร้างขึ้นโดยอัตโนมัติสามารถช่วยให้นักพัฒนาเข้าใจและนำ libcurl API ไปใช้ได้รวดเร็วยิ่งขึ้น
  • คุณค่าในฐานะเครื่องมือการเรียนรู้: อาจเป็นสื่อการเรียนรู้ที่ดีสำหรับวิศวกรซอฟต์แวร์ระดับเริ่มต้น โดยช่วยให้เห็นตัวอย่างการใช้ตัวเลือกของ libcurl และการประยุกต์ใช้จริงของการเขียนโปรแกรมเครือข่าย

1 ความคิดเห็น

 
GN⁺ 2024-01-30
ความคิดเห็นบน Hacker News
  • รูปแบบการหาคำขอที่สนใจในแท็บเครือข่ายของเบราว์เซอร์แล้ว "คัดลอกเป็น curl" นั้นมีประโยชน์มาก วิธีนี้ช่วยสร้างคำสั่ง curl และสามารถนำไปใช้กับเว็บไซต์ที่แปลงเป็นโค้ดคำขอของภาษาที่ใช้คำสั่งนั้นได้ (curlconverter.com) โดย curl ทำหน้าที่คล้ายกับ "ตัวแทนกลาง" ที่แปลไปเป็นภาษาอื่นได้
  • การมีแฟล็กที่แสดงซอร์สโค้ดของโปรแกรมออกมาทาง command line interface เป็นความสามารถที่ยอดเยี่ยมมาก มันเหมือนกับการเปิดฝากระโปรงรถแล้วให้เห็นข้างใน ทำให้เข้าใจวิธีการทำงานได้ดีขึ้นและปรับเปลี่ยนให้ตรงกับความต้องการได้ ผู้ใช้จึงสามารถปรับแต่งหรือเพิ่มสิ่งที่ต้องการได้อย่างเป็นมิตรต่อผู้ใช้
  • หนึ่งในเหตุผลที่ Visual Basic Macro ของ Microsoft Office ประสบความสำเร็จก็เพราะความสามารถลักษณะนี้ หลังจากทำงานใน Word, Excel ฯลฯ แล้ว ผู้ใช้สามารถนำแมโครที่ถูกสร้างขึ้นมาไปใช้เป็นโค้ดและปรับแต่งต่อให้ตรงกับความต้องการได้ นี่เป็นแนวคิดที่เรียบง่ายแต่ทรงพลัง และเราก็เห็นสิ่งนี้ใน curl เช่นกัน
  • หากต้องการคอมไพล์ curl จะต้องสั่งให้ลิงก์กับ libcurl ตัวอย่างเช่น ใน gcc ให้ใช้ตัวเลือก -lcurl วิธีนี้สามารถใช้พิมพ์ที่อยู่ IP และสร้างไฟล์ ip_fetcher.c จากนั้นคอมไพล์ด้วย gcc และรันไฟล์ปฏิบัติการเพื่อรับที่อยู่ IP ได้
  • Hurl เป็นโอเพนซอร์ส CLI ที่ใช้ libcurl และใช้ plain text สำหรับทดสอบคำขอ HTTP โดยอาศัยความเสถียรและความสามารถที่ดีที่สุดของ libcurl (รวมถึง HTTP/3) พร้อมเพิ่มฟีเจอร์อย่างการเชื่อมต่อคำขอ การจับและส่งต่อข้อมูลจากการตอบกลับ และการทดสอบการตอบกลับ (JSONPath, XPath เป็นต้น) มันมีไวยากรณ์ที่ใช้งานสะดวกสำหรับคำขอไปยัง REST/SOAP/GraphQL API แต่แก่นหลักก็คือ libcurl และเมื่อใช้ตัวเลือก verbose ก็สามารถ grep คำสั่ง curl ได้
  • อยากให้ ffmpeg มีความสามารถแบบนี้ด้วย
  • Daniel Stenberg ใส่ใจรายละเอียดและประสบการณ์ของนักพัฒนา/ผู้ใช้มาก และความประณีตใส่ใจแบบนี้ก็น่าทึ่งมาก
  • มีการพูดถึงตัวเลือกนี้ในวิดีโอความยาว 3 ชั่วโมงที่ Daniel Stenberg อธิบายตัวเลือก command line ของ curl เกือบทั้งหมดด้วยตัวเอง
  • ในชื่อเรื่องที่ส่งควรใช้ขีดกลางสองตัว (--) และการใช้ em-dash ปนกับขีดกลาง (—-) นั้นไม่ถูกต้อง
  • มีความเห็นแบบสนับสนุน AI อย่างกระตือรือร้นว่าการมาของ ChatGPT ทำให้ฟีเจอร์นี้ล้าสมัยไปแล้ว เพราะตอนนี้ไม่จำเป็นต้องฝัง quines ที่ทำไว้ครึ่งหนึ่งไว้ในไฟล์ปฏิบัติการ curl อีกต่อไป