Отправка HTTP-запроса

Haskell:
Отправка HTTP-запроса

Как это сделать:

Перейдем к интересному. Вам понадобятся пакеты http-client и http-client-tls. Настройте ваш стек и добавьте их в ваш файл package.yaml или .cabal. Затем выполните команду stack build или другие соответствующие команды для их загрузки.

Вот простой GET запрос:

import Network.HTTP.Client
import Network.HTTP.Client.TLS
import qualified Data.ByteString.Lazy.Char8 as L8

main :: IO ()
main = do
    manager <- newManager tlsManagerSettings
    request <- parseRequest "http://httpbin.org/get"
    response <- httpLbs request manager
    L8.putStrLn $ responseBody response

Это выведет на печать JSON, полученный от httpbin.org.

Погружение в детали

Раньше, запросы HTTP в Haskell были менее очевидными, но библиотеки, такие как http-client, упростили этот процесс.

Альтернативы? Конечно. Есть wreq, req и другие, часто с синтаксическим сахаром или дополнительными функциями. Но http-client это как тот надежный швейцарский нож в вашем ящике – он всегда выполняет работу.

Под капотом http-client использует Manager для управления соединениями. Это эффективно и позволяет использовать сокеты повторно. Можно его настроить, но по умолчанию это тоже хороший старт.

Смотрите также

Чтобы расширить ваш арсенал, посмотрите следующее: