Clojure:
שליחת בקשת HTTP
איך לעשות:
שליחת בקשת HTTP בClojure היא פשוטה. עם ספריית clj-http, הקוד קצר ולעניין.
(require '[clj-http.client :as client])
; שליחת בקשת GET
(def response (client/get "http://example.com"))
(println (:status response))
(println (:headers response))
(println (:body response))
תוצאת הדוגמא:
200
{"Content-Type" "text/html; charset=UTF-8", ...}
"<html> ... </html>"
לשליחת בקשת POST, פשוט הוסף מפרמטים.
(def post-response (client/post "http://example.com/post"
{:form-params {:key1 "value1" :key2 "value2"}}))
(println (:status post-response))
תוצאת הדוגמא:
200
צלילה עמוקה
שליחת בקשות HTTP היא חלק חשוב בתקשורת ברשת מאז תחילת האינטרנט. בעבר נעשה שימוש בספריות כמו java.net.* שב-Java, אך ב-Clojure מעדיפים ספריות פשוטות ויעילות כמו clj-http
. clj-http
מסתמכת על Apache HttpClient לפרטי המימוש ומוסיפה ממשק פשוט ונוח ל-Clojure.
יתרונות clj-http
כוללים התממשקות נוחה עם מבני נתונים של Clojure, ניהול אוטומטי של קוקיז וחיבורים, ודינמיות בשליחת בקשות - ניתן לשלב קלוז’רים להתאמה אישית של התהליך.
יש גם אלטרנטיבות אחרות ל-shlj-http כמו http-kit
וaleph
שמציעות מודלים שונים של תקשורת אסינכרונית ותומכות ב-HTTP/2.
ראה גם:
- התיעוד של
clj-http
: https://github.com/dakrone/clj-http - מדריך ל
http-kit
: http://www.http-kit.org - דף הגיטהאב של
aleph
: https://github.com/ztellman/aleph - פרטים על ספריית Apache HttpClient ש
clj-http
משתמשת בה: https://hc.apache.org/httpcomponents-client-ga/