2016-07-12 8 views
1

Ich versuche, die Proxmox VE Json API zu verwenden, mit wreq kann ich mich anmelden und die JSON Antwort erhalten, die das Token als Cookie mit jeder Anfrage gesendet werden. Meine Frage ist nun, wie setze ich einen Cookie mit wreq? Es sieht so aus, als würde die Sitzungsbehandlung automatisch das vom Server gesendete Set-Cookie behandeln, aber in meinem Fall passiert das nie.WReq hinzufügen abritrary cookie auf die Anfrage

Gibt es ein WReq-Äquivalent zum einfachen curl -b "Something = Value" in der Shell? Sieht so aus, als ob man den Cookie-Konstruktor von Hand aufrufen kann, aber es braucht eine Menge Argumente, und ich weiß nicht genau, was ich da neben dem Namen und dem Wert eingeben soll.

Dank,

Antwort

2

Eine Option ist getWith verwenden, die Ihnen eine CookieJar mit Ihrer benutzerdefinierten Cookie Werte angeben können.

{-# 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

Danke, das funktioniert perfekt! – Ulrar

Verwandte Themen