Ruby:
ส่งคำขอ HTTP

วิธีทำ:

Ruby ทำให้การส่งคำขอ HTTP เป็นเรื่องง่าย นี่คือวิธีที่เร็วที่สุดด้วยห้องสมุดมาตรฐาน Net::HTTP

require 'net/http'
require 'uri'

uri = URI('http://example.com')
response = Net::HTTP.get(uri)
puts response

สิ่งนี้จะแสดงผลลัพธ์เนื้อหา HTML ของ http://example.com.

คุณอาจต้องการโพสต์ข้อมูลด้วย:

require 'net/http'
require 'uri'

uri = URI('http://example.com/api')
res = Net::HTTP.post_form(uri, 'key1' => 'value1', 'key2' => 'value2')
puts res.body

สิ่งนี้ส่งคำขอ POST พร้อมข้อมูลและแสดงคำตอบ

ลงลึก:

ในอดีต การส่งคำขอ HTTP เป็นเรื่องยุ่งยาก และคุณอาจต้องใช้ gem เช่น HTTParty แต่ห้องสมุด Net::HTTP ที่มาพร้อมกับ Ruby นั้นได้พัฒนาไปมาก และตอนนี้รองรับสิ่งที่คุณต้องการได้ส่วนใหญ่

อย่างไรก็ตาม, Net::HTTP อาจดูพูดเยอะ หากโปรเจกต์ของคุณต้องการฟีเจอร์ HTTP เพิ่มเติมหรือซินแท็กซ์ที่ใช้ง่ายขึ้น, HTTParty หรือ Faraday เป็นทางเลือกที่ดี จีมเหล่านี้มี API ที่เข้าใจง่ายกว่าและสามารถรับมือกับสถานการณ์ที่ซับซ้อนมากขึ้น เช่น มิดเดิลแวร์หรืออะแดปเตอร์ที่แตกต่างกัน

โดยพื้นฐานแล้ว การส่งคำขอ HTTP ด้วย Ruby เกี่ยวข้องกับการสร้างไคลเอนต์ HTTP, ตั้งค่าวัตถุคำขอโดยมีวิธีการ, ส่วนหัว และเนื้อหาถ้าจำเป็น จากนั้นจึงส่งคำขอเพื่อรับคำตอบ

ตัวอย่างของ HTTParty:

require 'httparty'

response = HTTParty.get('http://example.com')
puts response.body

ทำเหมือน Net::HTTP.get แต่ด้วยการตั้งค่าน้อยลง

ดูเพิ่มเติม:

สำหรับข้อมูลเพิ่มเติมอย่างละเอียด, คู่มือของ Ruby เป็นประโยชน์มาก:

และถ้าคุณมีความสนใจอย่างหนักในการเชื่อมต่อเครือข่าย HTTP ของ Ruby, ลองดูที่: