之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议。接下来我们就来看看如何下载Https协议的服务器文件。

HTTPS既然是增加了SSL协议,那么我们就处理SSL协议这关就可以了。

开发环境:XE2 + Indy10

Delphi控件:TIdhttp,IdSSLIOHandlerSocketOpenSSL(原生控件)

关键DLL:libeay32.dll,ssleay32.dll(非常重要,缺失会导致无法下载。)

其实关键的下载代码并没有太大的变化,重要的是需要IdSSLIOHandlerSocketOpenSSL来处理SSL。于是我们只需要在之前的代码中稍微修改一下即可:

uses IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL;

定义:

ssl: TIdSSLIOHandlerSocketOpenSSL;

创建:

ssl := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdHTTP := TIdHTTP.Create(nil);
IdHttp.IOHandler := ssl;
IdHttp.Request.BasicAuthentication:=True;

使用过程中不需要做任何操作。

释放:

FreeAndNil(ssl);

HTTP协议文件下载的源码:https://blog.csdn.net/yueyun889/article/details/80731572

转自:https://blog.csdn.net/yueyun889/article/details/80741677

最新文章

  1. ServletContext总结
  2. C# String.Format大全 去 decimal 后面的 0
  3. python在linux上的GUI无法弹出界面
  4. sqlite3 多线程和锁 ,优化插入速度及性能优化
  5. COJN 0483 800501求最大非空子矩阵
  6. kafka安装及Kafka-PHP扩展的使用
  7. Shell使用
  8. LDT自己定义启动模拟器
  9. Linux内核学习笔记-2.进程管理
  10. [原创].NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇)
  11. selenium自动化过程中遇到的小问题(未完待续)
  12. C#中:函数访问级别对函数形参访问级别的约束
  13. 网上搜索到的 比较好的mysql查询语句练习题
  14. PHP过滤指定字符串,过滤危险字符
  15. [SDOI 2009]Elaxia的路线
  16. 观察者模式的python实现
  17. 三维计算机视觉 —— 中层次视觉 —— RCNN Family
  18. 剑指offer——python【第44题】翻转单词顺序
  19. ②NuPlayer播放框架之ALooper-AHandler-AMessage底层机制分析
  20. linq中last或者lastordefault不存在的问题

热门文章

  1. Mysql中的锁机制
  2. reorder-list 单链表
  3. 学习 JS滚轮事件(mousewheel/DOMMouseScroll)
  4. python运算符基础实例
  5. [02] Spring主要功能模块概述
  6. 关于PHP程序员技术职业生涯规划
  7. 序号生成算法odoo
  8. C# DllImport 相对路径无法找到dll
  9. $\mathfrak {reputation}$
  10. 使用Pandas_UDF快速改造Pandas代码