首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Windows Phone:取消HttpWebRequest并获取数据

Windows Phone:取消HttpWebRequest并获取数据
EN

Stack Overflow用户
提问于 2013-05-18 02:35:14
回答 1查看 460关注 0票数 0

我使用Windows phone8的C#中的HttpWebRequest从远程服务器下载文件。使用调用HttpWebRequest.Abort()的超时在一段时间后取消请求。

这可以很好地工作,但我希望访问已经下载的数据,包括服务器发送的标头,即使下载(请求)尚未完成:

代码语言:javascript
代码运行次数:0
运行
复制
HttpWebRequest  _request =  (HttpWebRequest)WebRequest.Create("http://urltofile.zip");
_request.Method = "GET";

_timeout.Start(); // a timer which calls _request.Abort() after a certain time
request.BeginGetResponse(new AsyncCallback(HandleResultAsync), _request);



public void HandleResultAsync(IAsyncResult result)
{
    HttpWebRequest request = (HttpWebRequest)result.AsyncState;

    HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result); // exception is raised here when "_request.Abort()" is called from the timer
}

当从计时器调用"HttpWebRequest.Abort()“时,就会调用"HandleResultAsync”方法。但是访问"request.EndGetResponse()“获取已经下载的头部和部分内容失败,因为响应已经结束。

如何访问最终下载的头部和部分内容?

致以敬意,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-18 13:12:14

我找到了一个解决方案:你必须关闭HttpWebRequest的缓冲,然后在我最初的帖子中读取"HandleResultAsync“方法中的数据块时,可以取消下载:

代码语言:javascript
代码运行次数:0
运行
复制
_request.AllowReadStreamBuffering = false;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16615776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档