2016-07-12 79 views
1

我正在嘗試使用Proxmox VE json API和wreq我可以登錄並獲取包含令牌的json響應,並將其作爲每個請求的cookie發送。我現在的問題是如何使用wreq設置cookie?看起來會話處理會自動處理由服務器發送的Set-Cookie,但在我看來,這種情況從未發生過。WReq在請求中添加abritrary cookie

在shell中是否存在與簡單curl-b「Something = Value」等價的WReq? 看起來可以手動調用Cookie構造函數,但它需要很多參數,除了名稱和值之外,我不知道應該在那裏放置什麼。

感謝,

回答

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" 
+0

謝謝,這完美的作品! – Ulrar