2010-09-02 44 views
1

我在一個運行在squid代理之後的聚合器客戶端中使用python feedparser。我希望它在請求中發送一個cache-control: max-age=600標頭,以便我們得到合理的最新響應。 (目前代理從緩存中返回提要,甚至在它們發生更改後的幾天內,這是基於啓發式期限合理但不夠好的。)如何讓feedparser發送緩存控制標頭?

Feedparser中似乎沒有任何直接api要做到這一點,那麼最好的方法是什麼?我真的不想改變來源。

更新:有一個錯誤,224,要求一種方法來添加任意標題,部分修補程序,但尚未合併。這可能是最乾淨的方式。否則,似乎我需要monkeypatch urllib或feedparser。 ICK。

回答

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

爭論的語義已經改變了(它現在被稱爲request_headers ),但有一個新的feedparser版本應該支持這個用例。

+0

hooray,感謝您告訴我們 – poolie 2011-03-02 06:55:12