Clojure:
Een webpagina downloaden

Hoe te:

In Clojure kun je clj-http gebruiken om snel een webpagina te downloaden. Hier is een eenvoudig voorbeeld:

(require '[clj-http.client :as client])

(defn download-page [url]
  (client/get url))

;; Gebruik het als volgt:
(defn -main []
  (println (download-page "http://example.com")))

Als je dat uitprobeert, krijg je een map vol details. De interessante delen bevinden zich onder :body en :status.

Diepere duik

Historisch gezien was het downloaden van webpagina’s een “wget” of “curl” op de commandoregel. Nu abstraheren talen zoals Clojure dit met bibliotheken. clj-http is zo’n bibliotheek die Java’s Apache HttpComponents inpakt voor Clojures functionele stijl.

Alternatieven? Zeker. Je zou direct java.net.HttpURLConnection kunnen gebruiken of een andere bibliotheek zoals http-kit kunnen kiezen - maar clj-http is comfortabel en bevat de meeste dingen die je direct uit de doos nodig hebt.

Wat betreft de technische details, clj-http zet je verzoek om in een Java HTTP-entiteit, maakt de oproep en geeft de reactie terug. Achter de schermen houdt het zich bezig met omleidingen, het parsen van koppen en het beheren van het antwoordlichaam, zodat je je kunt concentreren op je gegevens, niet op het leidingwerk.

Zie ook