delphi什么是THttpClient?


本文整理自网络,侵删。

 

什么是THttpClient?

THttpClient是System.Net.HttpClinet单元中包含的新HTTP客户端。

旧的Indy TIdHttp是唯一实现的,因此Indy可以在所有操作系统上使用,但是THttpClient类使用每个操作系统提供的HTTP库。
因此,它既快速又健壮(维护工作留在OS端)。

另外,当我尝试将SSL与Indy结合使用时,我需要OpenSSL库,这很烦人。
当然,THttpClient类不需要任何其他库!

您通常可以使用将THttpClient包装为非可视组件的TNetHttpClient组件,但是这次我将直接使用THttpClient加载图像。

获取图像
要通过HTTP获取图像,只需调用Get方法,但是THttpClient具有阻塞操作,因此我将其封装在线程中一次。

这次,我并没有真正获得图像,因此我使用了TThread.CreateAnonymousThread使其变得更容易。

↓仅此代码即可获得图像。超级简单!!!

const
  URL = 'https://qiita-image-store.s3.amazonaws.com/0/12977/af4a05d5-dea6-979e-c367-d80241056406.png';

TThread.CreateAnonymousThread(
  procedure
  var
    Http: THttpClient;
    FS: TFileSTream;
    FileName: String;
  begin
    FileName := TPath.Combine(TPath.GetDocumentsPath, 'test.jpg');

    // 获取图像
    FS := TFileStream.Create(FileName, fmCreate, $1ff); // $1ff -> 
    try
      Http := THttpClient.Create;
      try
        Http.HandleRedirects := True;
        Http.OnReceiveData := HttpReceiveData;

        Http.Get(URL, FS);
      finally
        Http.DisposeOf;
      end;
    finally
      FS.DisposeOf;
    end;

    // 
    TThread.Synchronize(
      TThread.Current,
      procedure
      begin
        Image1.Bitmap.LoadFromFile(FileName);
      end
    );
  end

).Start;



相关阅读 >>

Delphi midstr 返回指定范围内的字符串

Delphi双进程监控

Delphi 蜂鸣器发声

Delphi 屏幕拷贝程序的源代码

Delphi 数字签名添加器源码

Delphi过滤字符串头部和尾部得到中间部分

Delphi idhttp1 xmlpost

Delphi-改进获取文件md5 hash方法

Delphi windows 编程[5] - 学习窗体生成的过程五

Delphi环境下基于spcomm控件开发串口通讯报文字节丢失的问题解决

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...