แปลง curl เป็น Ruby

curl2code แปลงคำสั่ง curl เป็นโค้ด Ruby โดยใช้ไลบรารีมาตรฐาน net/http ทุกอย่างทำงานภายในเบราว์เซอร์ของคุณผ่าน WebAssembly เพื่อความเป็นส่วนตัวที่สมบูรณ์ หากคุณชอบ Python ตรวจสอบ ตัวแปลง curl เป็น Python ของเรา สำหรับ Elixir ดูที่ curl เป็น Elixir ด้านล่างนี้คือตัวอย่าง Ruby ที่ใช้งานได้จริง

วิธีคัดลอก curl จากเบราว์เซอร์ของคุณ

  1. 1

    เปิด DevTools

    กด F12 หรือ Ctrl+Shift+I เพื่อเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์

  2. 2

    ไปที่แท็บ Network

    คลิกแท็บ Network และดำเนินการที่ทริกเกอร์คำขอ HTTP

  3. 3

    คัดลอกเป็น cURL

    คลิกขวาที่คำขอ → CopyCopy as cURL จากนั้นนำมาวางด้านบน

คำถามที่พบบ่อย (FAQ)

Ruby net/http คืออะไร?

net/http ของ Ruby เป็น HTTP client ไลบรารีมาตรฐานที่มีมาให้พร้อมกับการติดตั้ง Ruby ทุกเครื่อง จัดการได้ทั้ง GET, POST, การอัปโหลดแบบ multipart, SSL และ headers ที่กำหนดเอง ไม่ต้องติดตั้ง gem เพิ่มเติม นอกจากนี้ curl2code ยังรองรับ HTTParty ซึ่งเป็น gem ยอดนิยมที่ช่วยให้รูปแบบ HTTP ทั่วไปง่ายขึ้นด้วย API ที่สะอาดและเป็นแบบ declarative

net/http เทียบกับ HTTParty เทียบกับ Faraday — ควรใช้อันไหน?

net/http มีมาให้ในตัวและไม่ต้องมี dependency — เหมาะสำหรับงานง่ายๆ และสคริปต์ HTTParty ให้ DSL ที่สะอาดพร้อมการแยกวิเคราะห์ JSON อัตโนมัติ Faraday มี middleware, รูปแบบ adapter และมีความยืดหยุ่นสูงสุด สำหรับความง่ายในการเขียนสคริปต์ในลักษณะเดียวกัน โปรดดู ตัวแปลง curl เป็น Python หรือ ตัวแปลง curl เป็น PHP

จะจัดการการยืนยันตัวตนใน Ruby อย่างไร?

หากใช้ net/http: request["Authorization"] = "Bearer token" สำหรับการยืนยันตัวตนแบบ Basic: request.basic_auth("user", "pass") หากใช้ HTTParty ให้ใช้ headers: { "Authorization" => "Bearer token" } หรือ basic_auth: { username: "user", password: "pass" } โดย curl2code จะจัดการทั้ง -u และแฟล็ก header

จะส่งข้อมูลฟอร์มแบบ multipart ใน Ruby อย่างไร?

หากใช้ net/http ให้ใช้ gem multipart-post หรือสร้าง multipart body ด้วยตนเองโดยใช้ Net::HTTP::Post พร้อมกับ boundary strings ส่วน HTTParty ช่วยให้ง่ายขึ้นด้วย body: { file: File.open("path") } โดย curl2code จะแปลงแฟล็ก -F สำหรับทั้งสองไลบรารี

จะจัดการข้อผิดพลาด HTTP ใน Ruby อย่างไร?

หากใช้ net/http ให้ตรวจสอบ response.is_a?(Net::HTTPSuccess) หรือใช้ response.value ซึ่งจะ raise เมื่อสถานะไม่ใช่ 2xx ส่วน HTTParty จะคืนค่าออบเจกต์ response พร้อมเมธอด .success? และ .code สำหรับการเชื่อมต่อที่คงอยู่ ให้กู้คืนจาก Errno::ECONNREFUSED และ Net::ReadTimeout

จะส่ง HTTP requests พร้อมกันใน Ruby อย่างไร?

ไลบรารีมาตรฐานของ Ruby ทำงานแบบ synchronous ให้ใช้ Thread.new { ... } สำหรับการทำงานพร้อมกันพื้นฐาน หรือ gem concurrent-ruby สำหรับ thread pools สำหรับ async I/O ให้ใช้ async-http ร่วมกับ gem Async ส่วน Typhoeus ให้บริการการจัดคิว request แบบขนาน สำหรับการรองรับ async ในตัว โปรดดู curl เป็น Elixir

จะตั้งค่า timeouts ใน Ruby อย่างไร?

หากใช้ net/http: http.open_timeout = 10 (การเชื่อมต่อ) และ http.read_timeout = 30 (การตอบกลับ) ส่วน HTTParty รับตัวเลือก timeout: 30 ซึ่งจะจับคู่กับ --connect-timeout และ --max-time ของ curl ควรตั้งค่า timeout เสมอเพื่อหลีกเลี่ยง request ที่ค้างอย่างไม่มีกำหนด

จะใช้ proxy ใน Ruby อย่างไร?

หากใช้ net/http: Net::HTTP.new(host, port, proxy_host, proxy_port) หรือตั้งค่าตัวแปรสภาพแวดล้อม http_proxy และ https_proxy — ซึ่ง Ruby จะรองรับโดยอัตโนมัติ ส่วน HTTParty ใช้ตัวเลือก http_proxy: 'http://proxy:8080' โดย curl2code จะแปลงแฟล็ก -x เป็นไวยากรณ์ Ruby ที่ถูกต้อง

วิธีส่งคำขอ POST พร้อม JSON body ใน Ruby?

แปลงคำสั่ง curl POST เช่น curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL เป็น Ruby โดยใช้ curl2code โค้ดที่สร้างขึ้นจะใช้ Net::HTTP.post(uri, data.to_json, 'Content-Type' => 'application/json') โดย curl2code จะตรวจจับแฟล็ก -d/--data ที่มีเนื้อหา JSON โดยอัตโนมัติ และตั้งค่าส่วนหัว Content-Type ที่เหมาะสมในโค้ด net/http

วิธีเพิ่มการยืนยันตัวตนด้วย Bearer token ใน Ruby?

ส่ง curl -H "Authorization: Bearer YOUR_TOKEN" URL ไปยัง curl2code และเครื่องมือจะสร้างโค้ด net/http พร้อมส่วนหัวการยืนยันตัวตน: req['Authorization'] = 'Bearer YOUR_TOKEN' โดย curl2code จะตรวจจับ Bearer tokens จากทั้งแฟล็ก -H "Authorization: Bearer ..." และ --oauth2-bearer สำหรับ Basic auth ให้ใช้ -u user:pass

วิธีตั้งค่าส่วนหัว Content-Type ใน Ruby?

curl2code จะแปลง curl -H "Content-Type: application/json" URL เป็นโค้ด net/http พร้อมส่วนหัวที่ถูกต้อง: req['Content-Type'] = 'application/json' สำหรับข้อมูล -d นั้น curl จะกำหนดค่าเริ่มต้นเป็น application/x-www-form-urlencoded ส่วนการอัปโหลดฟอร์ม -F จะใช้ multipart/form-data โดย curl2code จะจับคู่แต่ละรายการเข้ากับ net/http API ที่ถูกต้อง

ลิงก์ที่มีประโยชน์

คู่มือ curl

แปลง curl เป็นภาษาอื่น