3 điểm bởi GN⁺ 2024-01-30 | 1 bình luận | Chia sẻ qua WhatsApp

Sử dụng --libcurl

  • Khuyến nghị dùng libcurl: Người dùng được khuyến nghị trước tiên hãy dùng công cụ dòng lệnh curl để thử kiểu truyền tải mong muốn, và khi nó đã hoạt động gần đúng như ý thì chạy lại với tùy chọn --libcurl [tên_tệp] được thêm vào dòng lệnh.
  • Tạo mã: Tùy chọn dòng lệnh --libcurl sẽ tạo ra một chương trình C với tên tệp được cung cấp. Chương trình C này sử dụng libcurl để thực hiện việc truyền tải mà công cụ dòng lệnh curl đã thực hiện.
  • Ngoại lệ và khác biệt: Kết quả không phải lúc nào cũng khớp 100%, nhưng nó có thể mang lại nguồn cảm hứng rất tốt về các tùy chọn libcurl và các đối số bổ sung mà bạn muốn sử dụng.

Mã ví dụ

  • Ví dụ chạy: Khi chạy lệnh curl http://example.com --libcurl example.c, tệp example.c sẽ được tạo trong thư mục hiện tại.
  • Mã được tạo: Mã được sinh ra bao gồm nhiều thiết lập tùy chọn bằng curl_easy_setopt(), và một số tùy chọn không thể dễ dàng được tạo trực tiếp từ mã nguồn nên người dùng có thể phải tự triển khai hoặc không sử dụng.

Ý kiến của GN⁺

  • Tính hữu ích của libcurl: Tính năng này giúp các nhà phát triển dễ dàng chuyển một lệnh curl đang hoạt động trên dòng lệnh thành chương trình C, qua đó tăng tốc việc phát triển ứng dụng sử dụng libcurl.
  • Ưu điểm của việc tạo mã: Mã được tạo tự động có thể giúp nhà phát triển hiểu và áp dụng API của libcurl nhanh hơn.
  • Giá trị như một công cụ học tập: Đây có thể là tài liệu học tập tốt cho các kỹ sư phần mềm mới vào nghề để thấy các tùy chọn libcurl và những ví dụ áp dụng thực tế của lập trình mạng.

1 bình luận

 
GN⁺ 2024-01-30
Ý kiến Hacker News
  • Mẫu tìm một yêu cầu cần quan tâm trong tab Network của trình duyệt rồi chọn "Copy as curl" rất hữu ích. Nhờ đó có thể tạo lệnh curl và dùng các trang như curlconverter.com để chuyển nó thành mã request cho ngôn ngữ đang sử dụng. curl đóng vai trò như một "biểu diễn trung gian" có thể dịch sang các ngôn ngữ khác.
  • Việc giao diện dòng lệnh có một cờ để in ra mã nguồn của chương trình là một tính năng rất tuyệt. Nó giống như mở nắp capo của chiếc xe để nhìn vào bên trong, giúp hiểu rõ hơn cách nó hoạt động và chỉnh sửa theo nhu cầu. Có thể tinh chỉnh hoặc bổ sung theo ý muốn nên rất thân thiện với người dùng.
  • Một trong những lý do Visual Basic Macro của Microsoft Office thành công là nhờ kiểu tính năng này. Sau khi thực hiện công việc trong Word, Excel v.v., người dùng có thể lấy macro được tạo ra dưới dạng mã rồi tùy biến theo nhu cầu của mình. Đây là một ý tưởng đơn giản nhưng mạnh mẽ, và cũng có thể thấy điều đó ở curl.
  • Để biên dịch curl, cần chỉ định liên kết với libcurl. Ví dụ, với gcc thì dùng tùy chọn -lcurl. Bằng cách này có thể in ra địa chỉ IP và tạo tệp ip_fetcher.c, sau đó biên dịch bằng gcc rồi chạy tệp thực thi để lấy địa chỉ IP.
  • Hurl là một CLI mã nguồn mở sử dụng libcurl, dùng văn bản thuần túy để kiểm thử các yêu cầu HTTP. Nó tận dụng độ ổn định của libcurl cùng các tính năng tốt nhất của nó, bao gồm cả HTTP/3, đồng thời bổ sung các khả năng như nối các request, trích xuất và truyền dữ liệu từ response, kiểm thử response (JSONPath, XPath, v.v.). Nó mang lại sự tiện lợi về cú pháp cho các request tới API REST/SOAP/GraphQL, nhưng cốt lõi vẫn là libcurl. Khi dùng tùy chọn Verbose thì có thể grep ra lệnh curl.
  • Ước gì ffmpeg cũng có thể làm được điều tương tự.
  • Daniel Stenberg rất chú ý đến chi tiết và trải nghiệm của nhà phát triển/người dùng, và sự chăm chút tỉ mỉ đó được đánh giá là đáng kinh ngạc.
  • Tùy chọn này được nhắc đến trong một video dài 3 tiếng, nơi chính Daniel Stenberg giải thích trực tiếp phần lớn các tùy chọn dòng lệnh của curl.
  • Tiêu đề bài gửi nên dùng hai dấu gạch ngang (--); việc dùng kết hợp em dash và dấu gạch ngang (—-) là không đúng.
  • Có ý kiến đầy hào hứng từ một người ủng hộ AI nhiệt thành rằng, từ khi ChatGPT xuất hiện, tính năng này đã trở nên lỗi thời vì không còn cần nhét các quine làm dở một nửa vào tệp thực thi curl nữa.