Haskell:
Надсилання HTTP-запиту
Як це зробити:
У Haskell для HTTP-запитів можна використовувати пакет http-conduit. Ось приклад простого GET-запиту:
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Simple
main :: IO ()
main = do
response <- httpBS "http://httpbin.org/get"
print (getResponseBody response)Коли ви запустите цей код, вивід буде приблизно таким:
"{\n \"args\": {}, \n \"headers\": {\n \"Accept-Encoding\": \"gzip\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"haskell http-conduit\"\n }, \n \"origin\": \"[your IP]\", \n \"url\": \"https://httpbin.org/get\"\n}\n"Поглиблено:
Використовуючи http-conduit, ви насолоджуєтеся автоматичним управлінням пулом з’єднань і можливістю відправляти асинхронні запити. Цей пакет побудований на conduit, що забезпечує потокову обробку даних і ефективне управління ресурсами.
Як альтернативу можна розглянути такі пакети, як wreq або нижньорівневу бібліотеку http-client. У минулому для HTTP-взаємодій в Haskell часто використовувалася бібліотека network.
Ключове в уточненні HTTP-запиту в Haskell — це побудова правильного Request об’єкту, управління заголовками, кукі та методами запитів. Модуль Network.HTTP.Simple дозволяє з легкістю керувати цими аспектами.