2010-09-02 6 views
1

J'utilise python feedparser dans un client agrégateur qui s'exécute derrière un proxy squid. Je veux qu'il envoie un cache-control: max-age=600 en-tête dans la demande, afin que nous obtenions une réponse raisonnablement à jour. (Au moment où les flux sont renvoyés par le proxy à partir de son cache, même quelques jours après leur modification, ce qui est raisonnable en raison de l'expiration heuristique mais pas assez.)comment obtenir feedparser pour envoyer un en-tête de contrôle de cache?

Il ne semble pas y avoir d'API directe dans feedparser Pour ce faire, quelle est la meilleure façon? Je ne veux pas vraiment changer la source. Mise à jour: il y a un bug, 224, demandant un moyen d'ajouter des en-têtes arbitraires, avec des patches partiels, mais pas encore fusionnés. C'est probablement le moyen le plus propre. Sinon, il semble que j'ai besoin de monkeypatch soit urllib ou feedparser. ick.

Répondre

1

Il me semble qu'il ya deux façons:

1- attendre http://code.google.com/p/feedparser/issues/detail?id=224 à fixer. J'ai mis en place un patch qui vous permet d'envoyer extra_headers={'Cache-control': 'max-age=0'} et nous verrons s'ils l'acceptent.

2- monkey-patch pour urllib2 mettre des en-têtes supplémentaires à la demande, qui semble être la seule réponse sans changer feedparser.

réponses Better très bienvenue ...

mise à jour 2010-10-29 patch est maintenant fusionné en amont et en attente d'une libération

1

La sémantique de l'argument ont changé (il est appelé maintenant request_headers) mais il existe une nouvelle version de feedparser qui devrait soutenir ce cas d'utilisation.

+0

hooray, merci de nous le faire savoir – poolie

Questions connexes