Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查HttpWebRequest上载的进度?_C#_Wpf_Httpwebrequest - Fatal编程技术网

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的文件试了一下,几秒钟内就全部发送了,然后实际的传输用了几分钟。