最近经常要用到模拟网页的登录,网页的抓取。一开始都是用同步的方法获取,同步在请求量比较小的情况下还可以接受。但是比如我一下子请求上百个,上千个页面就显得力不从心了。昨天终于狠下心来研究了一下异步的获取方式。虽说没有同步的方法简单,不过效率上真的提高了很多。现在记下来,以便以后查阅吧。

代码

namespace 异步调用方法
{
class Program
{

static void Main(string[] args)
{
for (int i = 0; i < 1111; i++)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.cnblogs.com/qianlifeng/");
request.BeginGetResponse(new AsyncCallback(OnResponse), request);
Console.WriteLine("请求" + i + "完成");
}
Console.Read();
}

static void OnResponse(IAsyncResult ar)
{
HttpWebRequest request = (HttpWebRequest)ar.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(ar);
Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
Console.WriteLine( sr.ReadToEnd());
}
}
}

一个httpwebrequest异步下载的例子相关推荐

  1. unity下载文件三(http异步下载)

    异步下载,顾名思义就是不影响你主线程使用客户端的时候,人家在后台搞你的明堂. 直接入主题,既然要下载,首先得请求,请求成功之后进行回调,这就是一个异步过程,异步回调的时间不可控. 1.首先请求下载. ...

  2. Swift多线程:使用GCD实现异步下载图片

    GCD属于系统及的线程管理,功能很强大,比上两次咱们分享的Operation要强大.有很多老前辈们已经创造了非常非常多的资料介绍GCD,因为大家都是把GCD放在了多线程内容分享的最开始,所以导致好多好 ...

  3. 使用 NSURLSession 开发一个支持后台下载和断点续传的下载工具

    NSURLSession 是 iOS 系统提供给我们的原生网络操作库,它提供了网络操作相关的一系列特性支持,比如缓存控制,Cookie管理,HTTP 认证处理等等,是一套整体的网络操作处理解决方案. ...

  4. [Swift]在不依赖三方库的情况下如何异步下载和缓存图片?

    在可滚动视图(如UITableView)中异步加载大量图片是一个很常见的任务. 然而,在图片正在下载的同时又要保持应用程序流畅滚动,可能有点挑战. 许多开发人员依靠像Alamofire和SDWebIm ...

  5. Celery - 一个懂得 异步任务 , 定时任务 , 周期任务 的芹菜

    1.什么是Celery? Celery 是芹菜 Celery 是基于Python实现的模块, 用于执行异步定时周期任务的 其结构的组成是由     1.用户任务 app     2.管道 broker ...

  6. Android异步下载

    概述 实现App常见下载公共 支持通知栏显示 支持 暂停.取消功能,使用Service.AsyncTask实现异步下载.特点简单.实用.方便源码扩展修改 详细 代码下载:http://www.demo ...

  7. Android多线程分析之一:使用Thread异步下载图像

    打算整理一下对 Android Framework 中多线程相关知识的理解,主要集中在 Framework 层的 Thread, Handler, Looper, MessageQueue, Mess ...

  8. Android异步下载网络图片(其三:ExecutorService)

    在第一节中,我们使用Handler.Thread/Runnable .URL.HttpURLConnection等等来进行异步下载网络图片.然后第二节中换了AsyncTask方式.那么这一节我们再应用 ...

  9. Android异步下载网络图片(其二:AsyncTask)

    在上一节中,我们使用Handler.Thread/Runnable .URL.HttpURLConnection等等来进行异步下载网络图片. 但是采用这种方式有一些缺点,如下: 线程的开销较大,如果每 ...

最新文章

  1. Android图形---OpenGL(二)
  2. 电商系统的高并发设计和挑战
  3. 我在PMCAFF,感觉身体被掏空
  4. 【Luogu】P3950部落冲突(树链剖分)
  5. SpringBoot Web原生组件注入(Servlet、Filter、Listener)
  6. 转:ASP.Net下两种全局变量的设置和读取方法
  7. eclipse中的java包awt_Eclipse中打包java程序
  8. angular 首屏加载优化_[转]Angular4首页加载慢优化之路
  9. 【MySQL】mysql查看库 表占用存储空间大小
  10. 1.2、安装Django-1.5.1及所需要的Python2.74环境
  11. tpl-spring-mybatis 模板工程
  12. HOOK使用:全局键盘钩子
  13. QDialog之屏蔽Esc键
  14. GCP+WORDPRESS建站。
  15. 服务器装系统出现命令提示符,怎么通过cmd命令提示符重装系统?具体怎么操作?...
  16. nodejs addon
  17. 13-SQLite之group by
  18. 批处理文件*.bat打开后闪退的处理方法
  19. Vue中常用的提示信息:
  20. 神经网络程序设计学习心得

热门文章

  1. springboot~Compiler时开启插件的注解功能
  2. tomcat 日志分割脚本
  3. 码易众包:软件开发众包的未来不能只靠等待和呐喊
  4. xmemcached发布1.3.6
  5. LinFu Dynamic Proxy - LinFu 2.3, LinFu.DynamicProxy 1.031
  6. Bitcoin Cash 交易签名与构造
  7. 又一款基于BCH开发出来的社交软件BlockPress
  8. 《Spring 5 官方文档》26. JMS(二)
  9. 第五章 文件和目录管理
  10. 在系统中使用read函数读取文件内容