Here you are combining async IO with sync IO, try to not do this.
Download all requests to a temp file and read yield from it.