Pergunta

Verifique se é possível baixar arquivo com delphi

Bom dia ...Estou iniciando em Delphi e estou criando um programa para baixar arquivos do HTTP...

Estou a usar:

IdHTTP.Get (URL FileDownload)

Porém meu programa gera erro quando não consegue baixar o arquivo...

Ex: http://exemplo.com/ -> Gera Erro

Ex: http://exemplo.com/meudownload.ts -> Faz download

Gostaria de corrigir esse erro, como posso verificar se é possível baixar o arquivo ou se ele está sendo baixado...

eu usei EIdHTTPProtocolExeption mas apenas verifica erros de HTML como:404, 300...e não é que eu desejo...

Gostaria de ver se você consegue baixar o arquivo, ou se ele está sendo baixado...

Se isso acontecer vou baixar outro arquivo:

donw_1.ts, down_2.TS, down_3.TS ...então quando ele conseguir el Arquivando um que não pode ser baixado, tenho a resposta para cancelar o loop ...

Foi útil?

Solução 3

Não é possível resolver o problema fazendo uma varredura HEAD...e consegui resolver o problema do erro HTTP 404....onde não havia arquivo para baixar gera esse erro EIdHTTPProtocolExeption...o problema foi resolvido ....

Outras dicas

Pegando o EIdHTTPProtocolException é o que você deveria estar fazendo.Lembre-se de que o Indy foi projetado especificamente para fazer uso de exceções para relatórios de erros. EIdHTTPProtocolException eu mostro TIdHTTP relata erros específicos de HTTP do servidor (qualquer outro tipo de exceção significa que o soquete ou o RTL teve um problema e a solicitação HTTP pode ser repetida).O simples fato de você receber essa exceção significa que o servidor não conseguiu entregar o arquivo conforme solicitado; portanto, normalmente você não deve tentar novamente, a menos que saiba que é um erro recuperável.Verificando a exceção ErrorCode é opcional, mas está disponível se você realmente precisar diferenciar erros específicos.

Se você quiser apenas ver se existe um arquivo no servidor, use TIdHTTP.Head.Esta função apenas baixa os cabeçalhos que teriam sido retornados da chamada Get equivalente, mas não os dados em si.Você pode então verificar os cabeçalhos para ver se o arquivo existe e decidir o que fazer a seguir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top