delphi validar si url esta activa
Buen dia:
he estado buscando la forma en la cual puedo saber si una url esta activa ya que necesito que me devuelva un valor si esta activa o no lo esta ya que tengo una base de datos de url las cual necesitoverificar. he visto algunos post mas nada en concreto. no he logrado separar la url activo del error 404. espero que alguno de ustedes me pueda ayudar. |
Normalmente te devuelve un valor: 200 ok, 404 not found, etc...
|
¿Valdría con un PING?
|
Lo primero que se me ocurre es hacer un GET a la URL y si no falla, "parsear" la respuesta para ver si contiene un texto de un breve diccionario de errores. Pero el problema que tienes actualmente, es que los servidores Web por ser amigables con el usuario, primero dejaron de responder errores para representarlos de forma amigable, y segundo te puedes encontrar con mensajes muy disparatados como: "Ups, algo no está bien".
En ese ejemplo, la función inexistente "FuncionParaEvaluarResultado", sería la encargada de buscar según un diccionario, palabras y frases que indiquen error, y es muy importante tener en cuenta, que el resultado no va a ser estrictamente cierto, por ejemplo si incluís la URI a este hilo, y encontrarás en la respuesta del servidor el texto 404, si bien el servidor pudo encontrar el hilo. |
Cita:
un ejemplo seria valida : http://www.mundomanuales.com/manuales/curso-Delphi.pdf que el archivo esta disponible. |
Puedes usar herramientas como wget para descargar lo que quieras y te devuelven el error si no existe, ejemplo:
|
Cita:
Es que es diferente comprobar una URL como comentaste al inicio que la existencia de un fichero. Puedes usar las Indy con un código como este:
Lo único que se me ocurre es que podría ser que detectes que el fichewro existe, pero que luego no puedas descargarlo (porque el servidor decida que no tienes permiso para ello -no estoy 100% seguro de qe esa posibilidad pueda darse-). |
La franja horaria es GMT +2. Ahora son las 18:12:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi