Handler the cancellation error
First do a HEAD to get headers, then do a GET. It's more polite than GET and cancelling
Try to simplify a bit
Run actual reactory code only after reactor has been started