HTTP リクエストを含む Web クライアント プログラミングに推奨されるライブラリは何ですか。
HTTPというパッケージがあることは知っていますが、HTTPS をサポートしていないようです。それのためのより良いライブラリはありますか?
Haskell には、このような機能を備えたライブラリを期待しています。
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)
また、必ずチュートリアルを参照してください。
Bryan O'Sullivan によってwreqという名前のライブラリがリリースされました。これは、HTTP 通信に最適で使いやすいものです。
同じ作者による関連するチュートリアルはこちらです。
優れた API を提供するreqという名前の別のライブラリもあります。
Network.HTTP.Conduit
そこに加えてNetwork.Http.Client
、インターフェースを公開しio-streams
ます。