C# 如何检查HttpWebRequest上载的进度?
我想知道如何检查文件的上载/下载量?我使用的是C# 如何检查HttpWebRequest上载的进度?,c#,wpf,httpwebrequest,C#,Wpf,Httpwebrequest,我想知道如何检查文件的上载/下载量?我使用的是HttpWebRequest您必须异步调用它以更新上载/下载的进度 HttpWebRequest有如下方法 public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state); public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state)
HttpWebRequest
您必须异步调用它以更新上载/下载的进度
HttpWebRequest有如下方法
public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state);
public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state);
接受异步回调。您必须异步调用它以更新上载/下载的进度 HttpWebRequest有如下方法
public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state);
public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state);
接受异步回调。如果在
HttpWebRequest
上使用异步模式,您可以这样做-有一个工作示例(基于MSDN文档示例代码)。简要说明:
这里有一个小小的胜利
允许您下载单个文件
从服务器,使用HTTP或
FTP。它显示下载进度和
显示平均传输速率,单位为
kb/秒。它还演示了如何
使用HttpWebRequest和
系统.Net中的FtpWebRequest类到
下载文件
如果在
HttpWebRequest
上使用异步模式,就可以做到这一点-有一个工作示例(基于MSDN文档示例代码)。简要说明:
这里有一个小小的胜利
允许您下载单个文件
从服务器,使用HTTP或
FTP。它显示下载进度和
显示平均传输速率,单位为
kb/秒。它还演示了如何
使用HttpWebRequest和
系统.Net中的FtpWebRequest类到
下载文件
只要在调用GetRequestStream之前设置HttpWebRequest.ContentLength或HttpWebRequest.SendChunked,您发送的数据将在每次调用Stream时发送到服务器。[开始]写入。如果您以小块方式编写文件,您可以了解您的工作进度。只要在调用GetRequestStream之前设置HttpWebRequest.ContentLength或HttpWebRequest.SendChunked,您发送的数据将在每次调用Stream时发送到服务器。[开始]写入。如果您将文件分成小块编写,您可以了解您的工作进展情况。那么,在写入/读取
HttpWebRequest的输入/输出流时,您是否也自己处理缓冲?通过缓冲,你有一个自然的迭代来增加进度。我可能错了,但是所有的缓冲都是客户端的进度,对吗?不是我实际发送的数据。或者你有一些代码或链接让我明白你的意思吗?顺便说一句,我当前的代码看起来与代码类似。那么,可能重复的代码在写入/读取HttpWebRequest
的输入/输出流时,您是否也自己处理缓冲?通过缓冲,你有一个自然的迭代来增加进度。我可能错了,但是所有的缓冲都是客户端的进度,对吗?不是我实际发送的数据。或者你有一些代码或链接让我明白你的意思吗?顺便说一句,我当前的代码看起来像是See for code。可能是重复的谢谢,但是你能详细说明一下你是如何做到这一点的吗。回调是用于请求完成时的。通过回调没有任何进展(除了100%——这可能不是OP提问的原因)。这也许可以解释为什么你会这样做,但是你能详细说明一下你是如何做到的吗?回调是在请求完成时进行的。通过回调没有任何进展(除了100%——这可能不是OP提问的原因)。这可能解释了下行的原因。实际上,即使在设置SendChunked时,客户机也会缓冲数据。我用一个18M的文件尝试了这个方法,所有文件都在几秒钟内发送,然后实际传输需要几分钟。事实上,即使您设置SendChunked,客户端也会缓冲数据。我用一个18M的文件试了一下,几秒钟内就全部发送了,然后实际的传输用了几分钟。