我使用web.py,它在内部使用 cookie.SimpleCookie
类加载从用户浏览器传入的cookie。
有时,我会遇到类似以下的异常:
...
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(cookies)和RFC 2068(HTTP 1.1)的阅读,不应使用斜杠,这样就可以了。我没有设置该Cookie,也不确定为什么要为我的域(或代理,也许是它)设置它,但是那是无关紧要的。更大的问题是,当simplecookie遇到此cookie时,它会严重失败,并向用户返回错误。
因此,我的问题是:是否有任何方法可以让
SimpleCookie
忽略无效的cookie,但返回其余的cookie?我找不到任何明显的文档来做到这一点。 最佳答案
这对我有用。
def get_cookies():
import Cookie
ans = Cookie.SimpleCookie()
for bit in os.environ.get('HTTP_COOKIE', '').split('; '):
try:
ans.load(bit)
except Cookie.CookieError:
pass
return ans
关于python - CookieError : Illegal key value,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7148458/