我不知道如何从服务器的响应中获得Content-Length头:
import Network.HTTP.Conduit
main = do
headers <- getHeaders "http://fdsfdsfds.fd"
--??? this doesn't compile and a wrong way to go
head $ filter (x -> hContentLength (fst x)) headers
getHeaders :: String -> IO ResponseHeaders
getHeaders url = do
req <- parseUrl url
res <- withManager $ httpLbs req
return $ responseHeaders res
你的建议吗?
这是因为hContentLength
只是一个不区分大小写的字符串,而不是一个函数。你不能应用它。
然而,由于CI a
是任何Eq a
的Eq
实例,您可以简单地使用lookup
:
getContentLength :: ResponseHeaders -> Maybe ByteString
getContentLength = lookup hContentLength