Windows phone 7 WP7文件上传,带有httpwebrequest和进度指示

Windows phone 7 WP7文件上传,带有httpwebrequest和进度指示,windows-phone-7,file-upload,httpwebrequest,Windows Phone 7,File Upload,Httpwebrequest,我正在使用HttpWebRequest将图像从Windows Phone 7应用程序上载到WebDAV服务器。上传没有问题,一切正常。 现在我想为文件上传添加一个进度条。 我正在使用以下代码将数据写入流: protected void WriteRequestStream(IAsyncResult result) { Stream stream = (Stream)result.AsyncState; Stream streamResponse

我正在使用HttpWebRequest将图像从Windows Phone 7应用程序上载到WebDAV服务器。上传没有问题,一切正常。 现在我想为文件上传添加一个进度条。 我正在使用以下代码将数据写入流:

    protected void WriteRequestStream(IAsyncResult result)
    {

        Stream stream = (Stream)result.AsyncState;
        Stream streamResponse = httpWebRequest.EndGetRequestStream(result);

        byte[] content = new byte[4096];
        long totalBytesRead = 0;
        int bytesRead = 0;
        do
        {
            bytesRead = stream.Read(content, 0, content.Length);
            totalBytesRead += bytesRead;
            streamResponse.Write(content, 0, bytesRead);
            streamResponse.Flush();

            if (progressCallback != null)
            {
                float value = (float)totalBytesRead / stream.Length * 100;
                progressCallback(value);
            }
        } while (bytesRead > 0);
        streamResponse.Close();


        httpWebRequest.BeginGetResponse(new AsyncCallback(requestCallback), null);
    }
我在streamResponse对象中写入的数据似乎在发送到WebDAV服务器之前已被缓冲。因此,在上传完成之前,ProgesBar将保持100%的速度

我注意到HttpWebRequest类中没有AllowWriteStreamBuffering属性。是否有任何解决方案可以在WP7中上载带有HttpWebRequest的文件并显示上载进度


谢谢大家!

检查这个例子,谢谢你的回复。我已经检查了示例,示例代码中的服务器似乎被修改为处理URI中的区块信息。在我的情况下,不可能修改服务器。我现在已经尝试上载分块的文件,但这不起作用。我觉得在WindowsPhone7!中使用httpWebRequest上传分块文件是不可能的!?没有SendChunked属性,我不知道如何告诉服务器我正在发送分块数据。在请求头中设置Transfer Encoding=chunked会导致EndGetResponse方法中出现NotSupportedException@WilliamMelani的链接已失效,像这样的koders.com链接对于永久线程来说不是很好的链接。