首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步best请求最佳实践

异步best请求最佳实践
EN

Stack Overflow用户
提问于 2009-02-23 03:23:16
回答 3查看 8.2K关注 0票数 8

异步获取for请求的最佳实践是什么?

我想从互联网上下载一个页面(不管是什么),尽量避免阻塞线程。

以前我认为只使用'BeginGetResponse‘和'EndGetResponse’对就足够了。但仔细观察,我也发现可以选择使用“BeginGetRequestStream”

GetRequestStream用于POST操作

为了增加混乱,我应该使用stream.BeginRead和EndRead吗?

文章建议使用Stream.BeginRead异步处理HttpResponse.GetResponseStream甚至更好

啊!怎么这么乱呀!

有人能给我指明正确的方向吗?

什么是最佳实践?

EN

回答 3

Stack Overflow用户

发布于 2009-02-24 08:22:06

您可以自己编写所有这些代码,也可以只使用WebClient,它为您做了大量的繁重工作。例如,要以字符串的形式下载文件,您将调用DownloadStringAsync(),它最终将触发OnDowloadStringCompleted事件。如果文件是二进制文件,您可以尝试使用DownloadDataAsync()代替。

票数 5
EN

Stack Overflow用户

发布于 2009-02-23 04:17:21

  1. 您可以使用Begin/EndGetResponse异步等待HTTP响应。如果您正在做一篇文章,并且需要异步发送大量数据,请使用Begin/EndGetRequestStream。
  2. 这并不是异步通信所独有的--您可以查找同步版本以获得更多信息。
  3. 我不知道您为什么要对请求流进行读取--很可能您将对其进行写入,并从响应流中读取。

最后,杰弗里·里希特的博客有一篇关于HttpWebRequest和streams的一些微妙之处的文章。

票数 0
EN

Stack Overflow用户

发布于 2009-02-24 07:06:13

您考虑过在新线程中执行web请求吗?

http://msdn.microsoft.com/en-us/library/ms173178.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/576440

复制
相关文章

相似问题

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