如何跟踪在delphi 10中通过NetHttpClient上传的进度?
问题描述:
现在我将通过delphi 10中的Nethttpclient
组件将文件发送到我的服务器,但我不知道如何跟踪上传时的进度。如果我下载文件,我可以通过活动ReceiveData
获得进展。 有没有任何其他有用的功能或事件来做到这一点,请您帮我解决这个问题。(只nethttpclient
,因为我不使用Indy
)如何跟踪在delphi 10中通过NetHttpClient上传的进度?
答
TNetHTTPClient
根本不暴露在任何种类的状态信息除OnRequestComplete
和OnRequestError
以外的上传。如果您需要上传数据进度的状态,则应切换到另一个提供所需进度报告的HTTP库。
这就是说,我可以看到用TNetHTTPClient
获取上传状态的唯一方法是使用TStream
发布文件数据。从TFileStream
导出自定义类并覆盖其Read()
方法以根据需要读取文件数据和报告状态。
什么?另一个HTTP组件?接口编程的另一个好的理由。如果您创建并使用仅实现的接口对象,那么切换到Indy或其他可以报告进度的库或组件是没有问题的。 – Victoria
是的,但是我的所有代码都基于nethttpclient – HenryXu
仅仅是一个细节,是不是像XE10 –