Ответ 1
Библиотека, названная wreq, была выпущена Брайаном О'Салливаном, которая является отличной и простой в использовании для связи по протоколу HTTP.
Связанный учебник для этого же автора здесь.
Что такое рекомендуемая библиотека для программирования веб-клиентов, которая включает HTTP-запросы.
Я знаю, что есть пакет под названием HTTP, но он, похоже, не поддерживает HTTPS. Есть ли для этого лучшая библиотека?
Я ожидаю библиотеку с функциональностью что-то вроде этого для Haskell.
Библиотека, названная wreq, была выпущена Брайаном О'Салливаном, которая является отличной и простой в использовании для связи по протоколу HTTP.
Связанный учебник для этого же автора здесь.
Network.HTTP.Conduit
имеет чистый API (он использует Network.HTTP.Types
) и прост в использовании, если вы немного знаете о кабелепроводах. Пример:
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Data.Conduit
import Network.HTTP.Conduit
import qualified Data.Aeson as J
main =
do manager <- newManager def
initReq <- parseUrl "https://api.github.com/user"
let req = applyBasicAuth "niklasb" "password" initReq
resp <- runResourceT $ httpLbs req manager
print (responseStatus resp)
print (lookup "content-type" (responseHeaders resp))
-- you will probably want a proper FromJSON instance here,
-- rather than decoding to Data.Aeson.Object
print (J.decode (responseBody resp) :: Maybe J.Object)
Также убедитесь, что обратитесь к учебнику.
В дополнение к Network.HTTP.Conduit
там Network.Http.Client
, который предоставляет io-streams
.
Servant прост в использовании (хотя и трудно понять) и волшебный. Он позволяет указать API как необитаемый тип и генерирует на нем поведение запросов и ответов. Вам никогда не придется беспокоиться о сериализации или десериализации или даже JSON - она автоматически конвертирует JSON в и из собственных объектов Haskell на основе API. Он получил отличный tutorial.