Clojure:
Отправка HTTP-запроса
Как:
В Clojure вы можете отправить HTTP-запрос, используя клиент clj-http
.
Сначала добавьте зависимость в ваш 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, имеет несколько библиотек для отправки HTTP-запросов. clj-http
- популярная из них, но существуют и другие, такие как http-kit
или core Clojure clj-http.client
.
clj-http
использует под капотом Apache HttpComponents Client для Java. Она универсальна, но может казаться слишком “на Java”. В качестве альтернативы, http-kit
более легковесный и идиоматичный для Clojure, но менее функциональный.
Когда вы отправляете HTTP-запросы, вы делаете это через TCP/IP, который формирует ваши запросы в соответствии с устоявшимся протоколом. Этот универсальный стандарт позволяет вам взаимодействовать практически с любым веб-сервисом.
Смотрите также
- репозиторий
clj-http
на GitHub: 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