Clojure:
ส่งคำขอ HTTP
วิธีทำ:
ใน Clojure, คุณสามารถส่งคำขอ HTTP ได้โดยใช้ clj-http
client.
ก่อนอื่น, เพิ่ม dependency ไปยัง project.clj
ของคุณ:
[clj-http "3.12.3"]
ตอนนี้, ไปส่งคำขอ GET กัน:
(require '[clj-http.client :as client])
(let [response (client/get "http://httpbin.org/get")]
(println response))
ตัวอย่างผลลัพธ์:
{:status 200, :headers {...}, :body "..."}
เพื่อโพสต์ข้อมูล:
(let [response (client/post "http://httpbin.org/post" {:form-params {:key "value"}})]
(println response))
ศึกษาเพิ่มเติม
การส่งคำขอ HTTP ไม่ใช่เรื่องใหม่ มันเก่าแก่เท่ากับเว็บเอง Clojure, ซึ่งเป็น Lisp สมัยใหม่, มีหลาย libs ที่ทำให้สามารถส่งคำขอ HTTP ได้ clj-http
เป็นตัวที่ได้รับความนิยม, แต่ยังมีอื่นๆ เช่น http-kit
หรือ clj-http.client
ของ Clojure เอง
clj-http
ใช้ Apache HttpComponents Client สำหรับ Java ภายใต้ประทุน มันทรงพลังแต่อาจรู้สึกหนักไปทาง Java ทางเลือก, http-kit
, เป็นไปตามแบบของ Clojure มากกว่าและเบากว่า แต่คุณลักษณะอาจจะน้อยกว่า
เมื่อคุณส่งคำขอ HTTP, คุณกำลังทำเช่นนั้นผ่าน TCP/IP, ซึ่งจะจัดเรียงคำขอของคุณตามโปรโตคอลที่มีมาอย่างยาวนาน มาตรฐานสากลนี้ทำให้คุณสามารถโต้ตอบกับบริการเว็บที่มีอยู่อย่างแท้จริง
ดูเพิ่มเติม
- พื้นที่เก็บข้อมูล GitHub ของ
clj-http
: https://github.com/dakrone/clj-http - เว็บไซต์อย่างเป็นทางการของ Clojure: https://clojure.org
- เอกสารของ HttpComponents Client: https://hc.apache.org/httpcomponents-client-ga/
- สำหรับความต้องการแบบเรียลไทม์, พิจารณา
http-kit
: http://www.http-kit.org