如何让feedparser发送缓存控制头?

时间:2010-09-02 02:27:53

标签: python http rss feedparser

我在一个在squid代理后面运行的聚合器客户端中使用python feedparser。我希望它在请求中发送cache-control: max-age=600标头,以便我们获得合理的最新响应。 (目前代理从其缓存返回提要,即使它们发生更改后的几天,这是合理的,基于启发式到期但不够好。)

在feedparser中似乎没有任何直接api这样做,那么最好的方法是什么?我真的不想改变消息来源。

更新:有一个错误,224,要求一种方法来添加任意标头,部分补丁,但尚未合并。这可能是最干净的方式。否则,似乎我需要monkeypatch urllib或feedparser。 ICK。

2 个答案:

答案 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版本应该支持这个用例。