Principalmente cuando se trabaja con url remotas o webservices en ocasiones es necesario consultar si tenemos conexión de Internet o conexión con el url que deseamos consultar. Esta función retorna True o False sobre un url brindado, lo puedes modificar para retornar específicamente el error generado.
En la captura del error puedes ver que cada tipo de mensaje tiene un código distinto, por no disponibilidad o falta de conexión o error de url no existente, etc.
Código C#
public bool VerificarConexionURL(string mURL) { System.Net.WebRequest Peticion = default(System.Net.WebRequest); System.Net.HttpWebResponse Respuesta = default(System.Net.WebResponse); try { Peticion = System.Net.WebRequest.Create(mURL); Respuesta = Peticion.GetResponse(); return true; } catch (System.Net.WebException ex) { if (ex.Status == Net.WebExceptionStatus.NameResolutionFailure) { return false; } return false; } }
Código VB.Net
Public Function VerificarConexionURL(ByVal mURL As String) As Boolean Dim Peticion As System.Net.WebRequest Dim Respuesta As System.Net.WebResponse Try Peticion = System.Net.WebRequest.Create(mURL) Respuesta = Peticion.GetResponse() Return True Catch ex As System.Net.WebException If ex.Status = Net.WebExceptionStatus.NameResolutionFailure Then Return False End If Return False End Try End Function
Tiene un error tu codigo
Respuesta = Peticion.GetResponse() y en
Net.WebExceptionStatus.NameResolutionFailure
Muchas gracias por tu aporte. Excelente !!
Tiene un error el código, en vez de “HttpWebResponse”, debes poner “WebResponse”.
Con eso ya funciona.
Aquí el código.
public bool VerificarConexionURL(string mURL)
{
System.Net.WebRequest Peticion = default(System.Net.WebRequest);
System.Net.WebResponse Respuesta = default(System.Net.WebResponse);
try {
Peticion = System.Net.WebRequest.Create(mURL);
Respuesta = Peticion.GetResponse();
return true;
} catch (System.Net.WebException ex) {
if (ex.Status == Net.WebExceptionStatus.NameResolutionFailure) {
return false;
}
return false;
}
}
GS
Hizo falta ponerle system en ex.Status == Net.WebExceptionStatus.NameResolutionFailure
quedaría así al final:
public bool VerificarConexionURL(string mURL)
{
System.Net.WebRequest Peticion = default(System.Net.WebRequest);
System.Net.WebResponse Respuesta = default(System.Net.WebResponse);
try
{
Peticion = System.Net.WebRequest.Create(mURL);
Respuesta = Peticion.GetResponse();
return true;
}
catch (System.Net.WebException ex)
{
if (ex.Status == System.Net.WebExceptionStatus.NameResolutionFailure)
{
return false;
}
return false;
}
}