im trying to make something like a feed reader. Im using feedparser.py
to parse the feeds like this

def fetch_feed(url, modified = None, etag = None):
    import feedparser
    headers = {}
    if modified:
        headers['If-Modified-Since'] = modified
    if etag:
        headers['If-None-Match'] = etag

    response = urlfetch.fetch(url, headers = headers)
    feed = feedparser.parse(response.content)
    feed.modified = response.headers['Last-Modified'] if 'Last-
Modified' in response.headers else None
    feed.etag     = response.headers['ETag'] if 'ETag' in
response.headers else None
    feed.status   = response.status_code
    return feed

but the If-Modified-Since and If-None-Match headers dont seem to work
on some feeds.. so i tried a test on http://shell.appspot.com/

>>> from google.appengine.api import urlfetch
>>> r = urlfetch.fetch('http://www.scripting.com/rss.xml')
>>> r.headers
{'Content-Length': '48035', 'Via': 'HTTP/1.1 GWA (remote cache hit)',
'Accept-Ranges': 'bytes', 'X-Google-Cache-Control': 'remote-cache-
hit', 'Server': 'Apache/2.2.4 (Win32)', 'Last-Modified': 'Fri, 30 Jan
2009 03:38:05 GMT', 'ETag': '"1dd8-bba3-eec4f564"', 'Date': 'Sun, 01
Feb 2009 04:46:09 GMT', 'Content-Type': 'application/xml', 'Age': '
14856'}
>>> h = r.headers
>>> r = urlfetch.fetch('http://www.scripting.com/rss.xml', headers = 
>>> {'If-Modified-Since': h['Last-Modified'], 'If-None-Match': h['ETag']})
>>> r.status_code
200L

but if i do curl for the same i get a 304 http code as expected..

$ curl --head http://www.scripting.com/rss.xml
HTTP/1.1 200 OK
Date: Sun, 01 Feb 2009 08:58:24 GMT
Server: Apache/2.2.4 (Win32)
Last-Modified: Fri, 30 Jan 2009 03:38:05 GMT
ETag: "1dd8-bba3-eec4f564"
Accept-Ranges: bytes
Content-Length: 48035
Content-Type: application/xml

$ curl --head --header "If-Modified-Since: Fri, 30 Jan 2009 03:38:05
GMT" --header "If-None-Match: \"1dd8-bba3-eec4f564\"" 
http://www.scripting.com/rss.xml
HTTP/1.1 304 Not Modified
Date: Sun, 01 Feb 2009 08:58:16 GMT
Server: Apache/2.2.4 (Win32)
ETag: "1dd8-bba3-eec4f564"

Can some one help me with this.. am i doing anything wrong?

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to