簡體   English   中英

用於HTTP通信的Haskell庫

[英]Haskell library for HTTP communication

什么是涉及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通信。

同一作者的相關教程就在這里。

除了Network.HTTP.Conduit之外,還有Network.Http.Client ,它公開了一個io-streams接口。

仆人很容易使用(雖然很難理解)和神奇。 它允許您將API指定為無人居住的類型,並基於它生成請求和響應行為。 您永遠不必擔心序列化或反序列化,甚至是JSON - 它會根據API自動將JSON轉換為本機Haskell對象和從本機Haskell對象轉換JSON。 它也有一個很好的教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM