http request lib with retry