以下是我发送get请求的方式:
import Network.HTTP.Conduit
import Control.Applicative ((<$>))
import Network.HTTP.Types
request <- parseUrl $ "someUrl"
res <- withManager $ httpLbs request
putStrLn $ show $ responseCookieJar res
而不是打印responseCookieJar
我希望从中获取值。这http://hackage.haskell.org/package/http-conduit-2.1.2/docs/Network-HTTP-Conduit.html#t:CookieJar意味着它是不可能的。所以我想我必须解析(通过regexp)它作为一个字符串。但必须有一种标准的方法,比如通过密钥获取值。
不存在吗?
答案 0 :(得分:3)
您可以使用destroyCookieJar
将其转换为Cookie
的列表,然后您可以通过各种字段访问器进行检查。
对密钥最有用的两个可能是cookie_name
和cookie_path
。所以你可能会做类似
filter (\c -> cookie_name c == pack "foo") . destroyCookieJar
(使用Data.Bytestring.Char8
中的pack
)
或者,如果有很多Cookie并且您想要进行多次查询,您可能希望首先从名称到Cookie构建类似Map
的内容。
答案 1 :(得分:3)
您可以致电destroyCookieJar
将其分解为单个Cookie
,然后搜索该列表。