2014-03-18 25 views
1

在PHP我沒有Python的解析設置cookie頭

setcookie("c2","value"); 
setcookie("c1","value", 0, "/", "", true, true); 

與安全和http僅標誌和其它發送一個餅乾它產生頭

Set-Cookie: c2=value, c1=value; path=/; secure; httponly 

在Firebug我可以看到,這是OK(C1安全標誌爲真,C2爲False)

我想這其中的一個沒有使用的安全標誌 我的Python代碼:

cookies = Cookie.SimpleCookie() 
cookies.load(headers['set-cookie']) 
print cookies 

Output: 
Set-Cookie: c1=value; Path=/\\r\\nSet-Cookie: c2=value 

標題[ '設置Cookie'] 確實包含原set-cookie頭,它的確定 根據Python文檔打印(如處理字符串)SimpleCookie實例應該創建設置cookie頭。問題是,解析原始標題後缺少某些東西。 零食還包含錯誤的值(僅限安全和http)。

這是一種錯誤配置,或者它是Python庫中的錯誤? 謝謝:)

+0

我結束了分裂的cookies通過^([ ^「] |」[^「] *」)*?(,)正則表達式。但更多pythonic解決方案將appriciated :) –

回答

1

這可能有點晚,但看到你的問題,並認爲你可能仍然需要幫助。 我用它來讀取一個cookie的代碼是:

import Cookie,os 
def getCookieData(): 
    try: 
     cookie = Cookie.SimpleCookie(os.environ["HTTP_COOKIE"]) 
     session = cookie['usrSession'].value 
     return session 
    except (Cookie.CookieError, KeyError): 
     return None 

我的cookie字符串它的東西沿着線:

Cookie: usrSession=12345 

希望這有助於

+1

您正在解析與HTTP請求發送的cookie頭。但問題是如何解析由HTTP響應返回的Set-Cookie頭。 – btubbs