It looks like there may be an issue with feedsky and responding to "Accepts-Encoding: gzip" header. I changed urlfetch to work like this:
content = urlfetch.fetch(url, headers={ "Accept-Encoding" : "identity" })
It has not failed on me once. I also tried the following experiments. I'm just using straight curl here, no fancy programs. Note how I am cut off sometimes:
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 100k 0 0:00:01 0:00:01 --:--:-- 127k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 103k 0 0:00:01 0:00:01 --:--:-- 133k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 103k 0 0:00:01 0:00:01 --:--:-- 133k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 103k 0 0:00:01 0:00:01 --:--:-- 132k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 103k 0 0:00:01 0:00:01 --:--:-- 132k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 103k 0 0:00:01 0:00:01 --:--:-- 133k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
21 180k 21 39886 0 0 6885 0 0:00:26 0:00:05 0:00:21 0
curl: (18) transfer closed with 145287 bytes remaining to read
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 103k 0 0:00:01 0:00:01 --:--:-- 132k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: gzip"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
21 180k 21 39886 0 0 6879 0 0:00:26 0:00:05 0:00:21 0
curl: (18) transfer closed with 145287 bytes remaining to read
Here's the same test passing a different "Accept-Encoding" header:
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 115k 0 0:00:01 0:00:01 --:--:-- 154k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 103k 0 0:00:01 0:00:01 --:--:-- 132k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 115k 0 0:00:01 0:00:01 --:--:-- 155k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 104k 0 0:00:01 0:00:01 --:--:-- 133k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 116k 0 0:00:01 0:00:01 --:--:-- 155k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 116k 0 0:00:01 0:00:01 --:--:-- 153k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 115k 0 0:00:01 0:00:01 --:--:-- 154k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 99141 0 0:00:01 0:00:01 --:--:-- 121k
computer@computer:/tmp$ curl -i -H "Accept-Encoding: identity"
http://feed.feedsky.com/qiushi > blah
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 180k 100 180k 0 0 104k 0 0:00:01 0:00:01 --:--:-- 133k
Granted, this is a pretty small sample size and not an exhaustive test, but I'd bet money right now that something is up with
feedsky.com's GZIP response.
--
Ikai Lan
Developer Programs Engineer, Google App Engine