Подтвердить что ты не робот

Библиотека Haskell для HTTP-связи

Что такое рекомендуемая библиотека для программирования веб-клиентов, которая включает HTTP-запросы.

Я знаю, что есть пакет под названием HTTP, но он, похоже, не поддерживает HTTPS. Есть ли для этого лучшая библиотека?

Я ожидаю библиотеку с функциональностью что-то вроде этого для Haskell.

4b9b3361

Ответ 1

Библиотека, названная wreq, была выпущена Брайаном О'Салливаном, которая является отличной и простой в использовании для связи по протоколу HTTP.

Связанный учебник для этого же автора здесь.

Ответ 2

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)       

Также убедитесь, что обратитесь к учебнику.

Ответ 4

Servant прост в использовании (хотя и трудно понять) и волшебный. Он позволяет указать API как необитаемый тип и генерирует на нем поведение запросов и ответов. Вам никогда не придется беспокоиться о сериализации или десериализации или даже JSON - она ​​автоматически конвертирует JSON в и из собственных объектов Haskell на основе API. Он получил отличный tutorial.