-2

这是我发送获取请求的方式:

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暗示这是不可能的。所以我想我必须(通过正则表达式)将它解析为一个字符串。但是必须有一种标准的方法,比如通过键获取值。

没有吗?

4

2 回答 2

3

您可以使用destroyCookieJar将其转换为Cookies 列表,然后您可以通过各种字段访问器对其进行检查。

最有用的两个键可能是cookie_namecookie_path。所以你可能会做类似的事情

filter (\c -> cookie_name c == pack "foo") . destroyCookieJar

(使用pack来自Data.Bytestring.Char8

或者,如果有很多 cookie,并且您想要执行多个查询,您可能希望首先构建一个Map从名称到 cookie 的东西。

于 2014-07-06T12:27:33.113 回答
3

您可以调用destroyCookieJar将其分解为单个Cookies,然后搜索该列表。

于 2014-07-06T12:27:47.627 回答