代码之家  ›  专栏  ›  技术社区  ›  HenryXu

如何在delphi 10中跟踪NetHttpClient上传的进度?

  •  1
  • HenryXu  · 技术社区  · 8 年前

    Nethttpclient ReceiveData . 没有任何其他有用的函数或事件来做它,请帮助我解决这个问题。(仅限 nethttpclient ,因为我不使用 Indy )

    2 回复  |  直到 8 年前
        1
  •  4
  •   Remy Lebeau    8 年前

    TNetHTTPClient 在上传过程中不会公开任何类型的状态信息,除了 OnRequestComplete OnRequestError . 如果需要上传数据的进度状态,则应切换到另一个HTTP库,该库提供您想要的进度报告类型。

    TNethTTP客户端 是使用 TStream . 从派生自定义类 TFileStream Read() 方法根据需要读取文件数据和报告状态。

        2
  •  1
  •   Ivan Revelli    4 年前

    实际上(我使用Delphi v.10.4.1),TNetHttpClient实现了一个名为OnSendData的属性/方法,类似于OnReceiveData,用于在上传过程中管理post流:

    property OnSendData: TSendDataEvent read FOnSendData write SetOnSendData;
    

    基于“System.Net.HttpClient.THTTPClient.Post”中声明的TSendDataEvent作为对象的过程:

    TSendDataEvent = procedure(const Sender: TObject; AContentLength: Int64; AWriteCount: Int64; var AAbort: Boolean) of object;