我使用web.py,它在內部使用cookie.SimpleCookie
類來加載從用戶瀏覽器傳入的Cookie。CookieError:非法密鑰值
偶爾,我得到這樣的例外:
...
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/Cookie.py", line 455, in set
raise CookieError("Illegal key value: %s" % key)
CookieError: Illegal key value: SinaRot/g/news.sina.com.cn
違規的性質似乎正斜槓(/
),其中,根據我的閱讀RFC 2109(餅乾)和RFC 2068(HTTP 1.1)應不允許,所以沒關係。
我沒有設置這個cookie,我不確定它爲什麼或如何爲我的域設置(代理,也許?),但這是不相關的;更大的問題是simplecookie在遇到這個cookie時會失敗,並向用戶返回一個錯誤。
所以,我的問題是:有什麼辦法要求SimpleCookie
簡單地忽略無效的cookie,但返回其餘的?我在文檔中找不到任何明顯的內容來執行此操作。
難道你不能只是趕上CookieError異常? – GWW
我可以(也應該),但因爲它是一個例外,我無法訪問其他cookie,包括我們的會話cookie。隨後的請求仍將包含導致錯誤的相同Cookie。此外,如果它來自代理,試圖解除它將很可能是徒勞的,因爲代理將在下一次重新設置它。 – dcrosta