Senthil Kumaran added the comment: This is turning out be trickier than I ever thought.
fileno() returning b'' is just random error. The underlying issue is, *directly* reading from the fp of the socket() is returning a incomplete output at all times. The correct way to read the output is by using HTTPResponse read() method only it seems. Here is a small snippet that will fail for every url. from urllib.request import urlopen import os web = "http://www.example.org" open_url = urlopen(web) fd = open_url.fileno() with os.fdopen(fd, 'rb') as f: file_read_len = len(f.read()) req = urlopen(web) res_len = len(req.read()) assert file_read_len == res_len ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21069> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com