从HTTP响应中获取报头



我不知道如何从服务器的响应中获得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 aEq实例,您可以简单地使用lookup:

getContentLength :: ResponseHeaders -> Maybe ByteString
getContentLength = lookup hContentLength

相关内容

  • 没有找到相关文章

最新更新