Comment ignorer l'erreur 401 non autorisée de webrequest pour obtenir un site internet de statut
Je suis en train d'écrire une application pour vérifier l'état de certaines applications web internes. Certaines de ces applications, utiliser l'authentification Windows. Lorsque j'utilise ce code pour vérifier l'état, il jette The remote server returned an error: (401) Unauthorized.
. Ce qui est compréhensible, parce que je n'ai pas fourni d'informations de connexion pour le site, donc je ne suis pas autorisé.
WebResponse objResponse = null;
WebRequest objRequest = HttpWebRequest.Create(website);
objResponse = objRequest.GetResponse();
Est-il possible d'ignorer l'erreur 401, sans faire quelque chose comme ça?
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;
}
}
Qu'entendez-vous par 'ignorer' ici, de passer à la page suivante?
Il ne sera probablement pas aider à l'exception du tout, mais il faut faire une requête HEAD comme il est plus léger et gère bien cette situation.
Soit une propriété qui rend la webrequest pas jeter une exception ou à tout avaler l'exception comme j'ai ci-dessus.
Avez-vous un lien vers un exemple ou comment l'utiliser?
Premier succès de google, bien que la seule ligne qui compte, c'est
Il ne sera probablement pas aider à l'exception du tout, mais il faut faire une requête HEAD comme il est plus léger et gère bien cette situation.
Soit une propriété qui rend la webrequest pas jeter une exception ou à tout avaler l'exception comme j'ai ci-dessus.
Avez-vous un lien vers un exemple ou comment l'utiliser?
Premier succès de google, bien que la seule ligne qui compte, c'est
request.Method = "HEAD";
OriginalL'auteur guanome | 2012-03-01
Vous devez vous connecter pour publier un commentaire.
Lorsque le serveur est en panne ou inaccessible, vous obtiendrez un délai d'attente d'exception. Je sais que la seule façon de le gérer c'est avec un try/catch.
Je suis assez sûr que c'est le cas pour la plupart des erreurs (401/404/501), donc: Non, vous ne pouvez pas l'ignorer (prévenir) les exceptions, mais vous aurez à gérer. Ils sont le seul moyen d'obtenir la plupart des StatusCodes votre Application est à la recherche d'.
OriginalL'auteur Henk Holterman
Je suggère d'essayer ceci:
La WebException a la réponse à toutes les informations que vous souhaitez.
OriginalL'auteur Geraldo Magella Junior
La position courte est que vous aurez envie de vérifier la
myHttpWebResponse.StatusCode
pour le code de statut et d'agir en conséquence.Exemple de code à partir référence:
objResponse = objRequest.GetResponse();
, donc je ne peux pas vérifier la réponse parce que la réponse n'est jamais ensemble. Si vous voulez dire dans l'exception, il va me donner unProtocolError
, donc je vais encore passer au crible le message d'exception à voir ce que le code d'état était réellement.OriginalL'auteur user17753