我在一个在squid代理后面运行的聚合器客户端中使用python feedparser。我希望它在请求中发送cache-control: max-age=600
标头,以便我们获得合理的最新响应。 (目前代理从其缓存返回提要,即使它们发生更改后的几天,这是合理的,基于启发式到期但不够好。)
在feedparser中似乎没有任何直接api这样做,那么最好的方法是什么?我真的不想改变消息来源。
更新:有一个错误,224,要求一种方法来添加任意标头,部分补丁,但尚未合并。这可能是最干净的方式。否则,似乎我需要monkeypatch urllib或feedparser。 ICK。
答案 0 :(得分:1)
在我看来,有两种方式:
1-等待http://code.google.com/p/feedparser/issues/detail?id=224修复。我贴了一个补丁,让你发送extra_headers={'Cache-control': 'max-age=0'}
,我们会看看他们是否接受了它。
2- monkeypatch in to urllib2在请求上添加一些额外的标题,这似乎是唯一没有更改feedparser的答案。
更好的答案非常欢迎......
更新2010-10-29 补丁现已合并到上游,等待发布
答案 1 :(得分:1)
参数的语义已经改变(现在称为request_headers
)但是有一个新的feedparser版本应该支持这个用例。