V11 update
For new functions it is enough to use documented Interactive
option:
URLRead["https://httpbin.org/status/401", Interactive -> False]
Broken for URLDownload
so here's a workaround:
Authentication dialog for URLDownload / URLSave
###Pre V11 era, URLFetch
and friends solutions
Pre V11 era, URLFetch
and friends solutions
There is an undocumented option DisplayProxyDialog
which prevents that:
URLFetch[
"https://httpbin.org/status/401"
, "StatusCode"
, "DisplayProxyDialog" -> False
]
As OP noticed it works for URLRead
even though it does not appear in Options[URLRead]
in contrary to Options[URLFetch]
.
When switched off you can handle 401 status code however you like, abort, prompt custom dialog etc.
I have not guessed it, WRI Support suggested it to my friend when he asked:
[...] Just informed by our development group that there is such an option (all-be-it undocumented):
"DisplayProxyDialog" -> False
to omit the authentication dialog. [...]
So I suppose this makes it safe to use.