Надсилання HTTP-запиту

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

Дивіться також: