Tôi sử dụng web.py, trong đó sử dụng nội bộ lớp cookie.SimpleCookie
để tải cookie đến từ trình duyệt của người dùng.CookieError: Giá trị khóa bất hợp pháp
thoảng, tôi nhận được trường hợp ngoại lệ như:
...
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
Nhân vật vi phạm có vẻ là dấu gạch chéo (/
), trong đó, theo tài liệu tôi đọc của RFC 2109 (cookie) và RFC 2068 (HTTP 1.1) nên không được phép, vì vậy đó là OK.
Tôi không đặt cookie này và tôi không chắc chắn lý do hoặc cách thức được đặt cho tên miền của mình (proxy, có thể?), Nhưng điều đó không liên quan; vấn đề lớn hơn là simplecookie không gặp khó khăn khi nó gặp cookie này và trả về lỗi cho người dùng.
Vì vậy, câu hỏi của tôi là: có cách nào để yêu cầu SimpleCookie
chỉ đơn giản bỏ qua các cookie không hợp lệ, nhưng trả lại phần còn lại? Tôi không thể tìm thấy bất cứ điều gì rõ ràng trong các tài liệu để làm điều này.
Bạn không thể bắt ngoại lệ CookieError? – GWW
Tôi có thể (và nên), nhưng vì đó là một ngoại lệ, tôi không thể truy cập các cookie khác, bao gồm cookie phiên của chúng tôi. Và các yêu cầu tiếp theo sẽ vẫn chứa cùng một cookie gây ra lỗi. Hơn nữa, nếu nó đến từ một proxy, cố gắng bỏ đặt nó có thể sẽ vô ích, vì proxy sẽ chỉ thiết lập lại nó vào lần sau. – dcrosta