Piszę aplikację, aby sprawdzić stan niektórych wewnętrznych aplikacji internetowych. Niektóre z tych aplikacji korzystają z uwierzytelniania systemu Windows. Kiedy używam tego kodu, aby sprawdzić status, rzuca The remote server returned an error: (401) Unauthorized.
. Co jest zrozumiałe, ponieważ nie dostarczyłem żadnych danych uwierzytelniających do strony, więc nie mam upoważnienia.
Jak zignorować 401 nieautoryzowany błąd z web-quaest, aby uzyskać status strony internetowej
WebResponse objResponse = null;
WebRequest objRequest = HttpWebRequest.Create(website);
objResponse = objRequest.GetResponse();
Czy istnieje sposób zignorować błąd 401 nie robiąc coś takiego?
WebRequest objRequest = HttpWebRequest.Create(website);
try
{
objResponse = objRequest.GetResponse();
}
catch (WebException ex)
{
//Catch and ignore 401 Unauthorized errors because this means the site is up, the app just doesn't have authorization to use it.
if (!ex.Message.Contains("The remote server returned an error: (401) Unauthorized."))
{
throw;
}
}
Co masz na myśli mówiąc "ignoruj", przejdź do następnej strony? –
Prawdopodobnie nie pomoże to w ogóle w przypadku wyjątku, ale powinieneś wykonać polecenie HEAD, ponieważ jest ono lżejsze i dobrze radzi sobie z tą sytuacją. –
@HenkHolterman Właściwość, która powoduje, że webrequest nie rzuca wyjątku lub po prostu przełamuje wyjątek taki jak powyżej. – guanome