in FileWrapper.read() the file seek position is continuously reset to initial position here:
if not data or size < 0 or size >= self.file_size:
self.seek(self.initial_read_pos)
whereby httplib reads a datablock ad infinitum. This generates a long URI which is rejected by the server.