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
для управления соединениями. Это эффективно и позволяет использовать сокеты повторно. Можно его настроить, но по умолчанию это тоже хороший старт.
Смотрите также
Чтобы расширить ваш арсенал, посмотрите следующее: