Network.HTTP.Client
を使用していて、ストリーミング応答のヘッダーを読み取ろうとしています。Haskell Network.HTTP.Client withResponse headers
私は型シグネチャがあることをfrom documentationを参照してください。
withResponse :: Request -> Manager -> (Response BodyReader -> IO a) -> IO a
次のように定義される。
withResponse req man f = bracket (responseOpen req man) responseClose f
そして、私は正確に定義しようとしている - のことができるようにする(\ f>のものを行います)応答のすべてのヘッダーを表示するだけです。私は、\はresは理解
getheaders :: String -> IO()
getheaders url = do
man <- newManager tlsManagerSettings
req' <- parseUrlThrow url
putStrLn url
let req = req' { responseTimeout = Just 1000000}
withResponse req man $ (\res -> do
(r _) <- res
putStrLn $ show r
)
は実際には次のとおりです。
(Response BodyReader -> IO a)
私はそれからヘッダを抽出することができますどのように?
responseHeaders :: Response body -> ResponseHeaders
ghciでこれらのタイプをどのように調査するかについてのヒントもありがとうございます。
素敵なトリックは、機能を考慮に名前と 'undefined'体を与え、GHCiのタイプを確認することです。 ':i'を使用することもできます。 'BodyReader'または' ResponseHeaders'が何であるか、どこから来たのかを調べるためのものです。 ( 'responseHeaders'が' body 'を介してレスポンスの内容を受け入れるので、あなたは今のところこれを必要としません) – MarLinn