检查是否可以使用delphi下载文件
美好的一天......我开始使用Delphi,我正在创建一个从HTTP下载文件的程序......
我正在使用:
IdHTTP.Get (URL FileDownload)
但我的程序在无法下载文件时会产生错误...
例如:http://exemplo.com/ - >生成错误
例如:http://exemplo.com/meudownload.ts - >下载
我想更正此错误,如何检查是否可以下载该文件或是否正在降低该文件...
我使用EIdHTTPProtocolExeption
但只检查HTML错误,例如:404,300 ......并且不是我想要的......
我想看看您是否可以下载该文件,或者是否正在下载该文件......
如果发生这种情况,我会下载其他文件:
donw_1.ts,down_2.TS,down_3.TS ......然后当他获得无法下载的存档时,我有了取消循环的答案......
答案 0 :(得分:6)
抓住EIdHTTPProtocolException
就是你应该做的。请记住,Indy专门用于利用错误报告的异常。 EIdHTTPProtocolException
是TIdHTTP
报告来自服务器的HTTP特定错误的方式(任何其他类型的异常意味着套接字或RTL出现问题并且可以重试HTTP请求)。您获得该异常这一事实意味着服务器无法按要求提供文件,因此您通常不应重试,除非您知道它是可恢复的错误。检查异常ErrorCode
是可选的,但如果您确实需要区分特定错误,则可以使用。
答案 1 :(得分:2)
如果您只想查看服务器上是否存在文件,请使用TIdHTTP.Head。此函数只下载从等效的Get调用返回的标头,但不下载数据本身。然后,您可以检查标题以查看该文件是否存在,并决定下一步该做什么。
答案 2 :(得分:0)
无法通过扫描HEAD解决问题...并设法解决HTTP 404错误的问题....在没有文件下载的情况下生成此错误EIdHTTPProtocolExeption ...问题已解决已经解决....