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
дозволяє з легкістю керувати цими аспектами.