elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ¿ Como detectar error 404 ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿ Como detectar error 404 ?  (Leído 2,456 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
¿ Como detectar error 404 ?
« en: 25 Mayo 2013, 16:13 pm »

Hola

Tengo dos problemas con una página web.

Esta página devuelve un error 404: http://www.mp3crank.com/releases/1925/page/1

El primer problema es que necesito detectar ese error, lo he intentado mediante los "statuscode" pero a la hora de declarar la variable "response" da exception ("página no encontrada error 404"):

Código
  1.    Dim request As HttpWebRequest = HttpWebRequest.Create("http://www.mp3crank.com/releases/1925/page/1")
  2.    Dim response As HttpWebResponse = request.GetResponse()
  3.    Dim sr As StreamReader = New StreamReader(response.GetResponseStream())
  4.  
  5.    If response.StatusCode = HttpStatusCode.NotFound Then
  6.        MsgBox("Error 404")
  7.    End If

Podría hacer un simple try catch en la variable "dim response" pero esto me parece muy cutre, ...¿aunque quizás esa es la única solución?

EDITO: No puedo usar la solución del Framework 4.5, estoy usando 3.5

El segundo problema es que la primera vez que se accede a esa url devuelve un 404, pero si se intenta acceder una segunda vez devolverá el código 200, así que el código de arriba, aunque me funcionase para detectar el error 404 sólamente me valdría para la primera vez (aunque si se accede desde el navegador seguirá devolviendo un 404)...

...Esto no tengo ni idea de porque sucede, imagino que el servidor detecta que se ha intentado acceder a una página que no existe, y entonces por algún extraño motivo se crea automáticamente esa página de forma temporal para devolver el código "200" las siguientes veces?, hasta ahí llega mi imaginación, no lo sé.

El caso es que la url que he puesto de enlace, si se testea más de una vez dará "200" pero en realidad no existe, es un "404", así que tengo dos problemas en uno y para hacer mis pruebas tengo que estar modificando cada vez el número "1925" de la url que os he dicho, por cualquier otro año entre "1XXX-1969", es un coñazo, jeje.

A ver si alguien me puede ayudar,
Gracias.



« Última modificación: 25 Mayo 2013, 16:19 pm por EleKtro H@cker » En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: ¿ Como detectar error 404 ?
« Respuesta #1 en: 25 Mayo 2013, 16:30 pm »

Vaya que casualidad que justo cuando escribo el post encuentro la solución al primer problema... odio que me pase eso xD.

Una función que hace el try:ctach por mi, si este es el único modo de hacer las cosas... pues lo veo aceptable:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.        Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://www.mp3crank.com/releases/12548/page/1")
  5.        Dim response As System.Net.HttpWebResponse = GetHttpResponse(request)
  6.  
  7.        If response.StatusCode = System.Net.HttpStatusCode.NotFound Then
  8.            MsgBox("Error 404")
  9.        End If
  10.  
  11.    End Sub
  12.  
  13.    Public Shared Function GetHttpResponse(request As System.Net.HttpWebRequest) As System.Net.HttpWebResponse
  14.        Try
  15.            Return DirectCast(request.GetResponse(), System.Net.HttpWebResponse)
  16.        Catch ex As System.Net.WebException
  17.            If ex.Response Is Nothing OrElse ex.Status <> System.Net.WebExceptionStatus.ProtocolError Then
  18.                Throw
  19.            End If
  20.            Return DirectCast(ex.Response, System.Net.HttpWebResponse)
  21.        End Try
  22.    End Function
  23.  
  24. End Class

Pues ahora me queda por resolver el segundo problema, que me da por válida (200) páginas que reálmente no existen (404), y esto ya si que no sé donde buscarlo ni como pensar en poder solucionarlo.

Saludos!


En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como detectar USB cuando sean conectados y como copiar archivos a estos (Con VB6
Programación Visual Basic
Sai-To 1 8,609 Último mensaje 1 Marzo 2008, 17:45 pm
por ‭‭‭‭jackl007
Error en c que no puedo detectar..
Programación C/C++
Martin23 6 4,345 Último mensaje 28 Abril 2011, 03:44 am
por Martin23
Detectar error en comandos FTP
Dudas Generales
andresee 0 3,179 Último mensaje 23 Septiembre 2011, 16:11 pm
por andresee
Error al Detectar Proxy
PHP
SrTrp 1 2,309 Último mensaje 19 Febrero 2017, 04:57 am
por engel lex
¿cómo detectar escaneos en mi red?
Seguridad
Pretoriano Gdl 3 5,515 Último mensaje 20 Noviembre 2020, 21:29 pm
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines