WReq为请求添加abritrary cookie

时间:2016-07-12 13:38:25

标签: haskell

我试图使用Proxmox VE json API,wreq我可以登录并获取包含令牌的json响应,并将其作为cookie发送给每个请求。我现在的问题是如何用wreq设置cookie?看起来会话处理会自动处理服务器发送的Set-Cookie,但在我的情况下从未发生过。

WReq是否等同于简单的curl -b" Something = Value"在壳? 看起来可以手工调用Cookie构造函数,但需要进行大量的论证,除了名称和值之外,我并不知道应该放在哪里。

感谢,

1 个答案:

答案 0 :(得分:2)

一种选择是使用getWith,您可以指定CookieJar 使用您的自定义Cookie值。

 {-# LANGUAGE OverloadedStrings #-}

 import Network.Wreq.Lens
 import Network.Wreq
 import Control.Lens
 import Network.HTTP.Client
 import Data.Time.Clock

 secs n = n*10^12
 mins n = n*60
 days n = n*1440

 foo = do
   now <- getCurrentTime
   let expires = addUTCTime (days 30) now
       cookie = Cookie "name" "value" expires "example.com" "/" now now True True False False
       jar = createCookieJar [cookie]
       opts = defaults :: Options
       opts' = opts & cookies .~ (Just jar)
   getWith opts' "http://example.com/asd"