get_url now uses a dispatch table
added basic_auth