Compruebe si es posible descargar el archivo con Delphi.
Pregunta
Compruebe si es posible descargar el archivo con Delphi.
Buen día ...Estoy empezando en Delphi y estoy creando un programa para descargar archivos desde HTTP...
Estoy usando:
IdHTTP.Get (URL FileDownload)
Pero mi programa genera error al no poder descargar el archivo...
Ex: http://ejemplo.com/ -> Genera Error
Ex: http://exemplo.com/meudownload.ts -> Realiza descarga
Me gustaría corregir este error, como puedo comprobar si es posible descargar el archivo o si está bajando...
solía EIdHTTPProtocolExeption
pero sólo comprueba errores HTML como:404, 300...y no es que lo desee...
Me gustaría ver si pueden descargar el archivo, o si se está descargando…
Si esto sucede, descargaré otro archivo:
donw_1.ts, abajo_2.TS, abajo_3.TS...luego cuando le sale el Archivando uno que no se puede descargar, tengo la respuesta para cancelar el bucle...
Solución 3
No se puede resolver el problema haciendo una cabeza de escaneo ... y logró resolver el problema con el error HTTP 404 ... Cuando no hubo un archivo para descargar, genera este error EidhttpprotocolexEstion ... El problema ha sidoresuelto ....
Otros consejos
Atrapando el EIdHTTPProtocolException
es lo que deberías estar haciendo.Recuerde que Indy está diseñado específicamente para utilizar excepciones para el informe de errores. EIdHTTPProtocolException
es como TIdHTTP
informa errores específicos de HTTP del servidor (cualquier otro tipo de excepción significa que el socket o el RTL tuvieron un problema y se puede volver a intentar la solicitud HTTP).El mero hecho de que obtenga esa excepción significa que el servidor no pudo entregar el archivo según lo solicitado, por lo que normalmente no debería volver a intentarlo a menos que sepa que es un error recuperable.Comprobando la excepción ErrorCode
Es opcional, pero está disponible si realmente necesita diferenciar entre errores específicos.
Si solo desea ver si existe un archivo en el servidor, use TIDHTTP.HEAD.Esta función simplemente descarga los encabezados que habrían sido devueltos de la llamada GET equivalente, pero no los datos en sí.A continuación, puede revisar los encabezados para ver si el archivo existe y decide qué hacer a continuación.