add progress listener for both http upload and download