WebRequest多线程 超时问题
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Net;
- using System.Threading;
- using System.Net.Sockets;
- using System.Net.NetworkInformation;
- public class ThreadDemo
- {
- public static void Main()
- {
- List<Thread> tls = new List<Thread>();
- System.Net.ServicePointManager.DefaultConnectionLimit = ;//最大并发数,.net默认并发只有2个
- for (int i = ; i < ; i++)
- {
- tls.Add(new Thread(new ThreadStart(test)));
- tls[i].Name = "线程" + (i + );
- tls[i].Start();
- }
- }
- public static void test()
- {
- new RequestTest().GetRequest(Thread.CurrentThread.Name, "http://163.com");
- }
- }
- public class RequestTest
- {
- System.Net.HttpWebRequest httpReq = null;
- System.Net.HttpWebResponse httpRes = null;
- /// <summary>
- /// 通过WebRequest来访问网址,网址必须包含http:或https:
- /// </summary>
- /// <param name="threadName">当前线程</param>
- /// <param name="url">要访问的网址</param>
- public void GetRequest(string threadName, string url)
- {
- if (string.IsNullOrEmpty(url) || url.Length <= ) return;
- DateTime dt = DateTime.Now;
- if (!url.Contains("."))
- {
- return;
- }
- if (!url.Contains("http://") && !url.Contains("https://"))
- url = "http://" + url;
- try
- {
- httpReq = (HttpWebRequest)WebRequest.Create(url);
- httpReq.Proxy = null;//不使用代理 .NET4.0中的默认代理是开启的
- httpReq.KeepAlive = false;//不建立持久性连接
- httpReq.Timeout = ;//连接网址的超时时间
- httpReq.ReadWriteTimeout = ;//读取网址内容的超时时间
- httpRes = (HttpWebResponse)httpReq.GetResponse();
- Console.WriteLine(threadName + " " + url + ":" + httpRes.StatusCode);
- }
- catch (Exception e)
- {
- Console.WriteLine(threadName + " " + url + " Error:" + e.Message);
- }
- finally
- {
- if (httpRes != null)
- {
- httpRes.Close();//关闭连接
- }
- if (httpReq != null)
- {
- httpReq.Abort();//中止请求
- }
- httpReq = null;
- httpRes = null;
- System.GC.Collect();//强制垃圾回收,并释放资源
- }
- }
- }
参考:
http://www.cnblogs.com/i80386/archive/2013/01/11/2856490.html
DefaultConnectionLimit 并发
Proxy
http://stackoverflow.com/questions/7325572/c-webrequest-proxy-null-side-effects
http://blog.sina.com.cn/s/blog_5fc933730100w3xz.html
WebRequest多线程 超时问题的更多相关文章
- JAVA多线程超时加载当网页图片
先上图: 这一次没有采取正则匹配,而采取了最简单的java分割和替代方法进行筛选图片 它能够筛选如下的图片并保存到指定的文件夹 如: “http://xxxx/xxxx/xxx.jpg” 'http: ...
- libcurl多线程超时设置不安全(转)
from http://www.cnblogs.com/kex1n/p/4135263.html (1), 超时(timeout) libcurl 是 一个很不错的库,支持http,ftp等很多的协议 ...
- java中异步多线程超时导致的服务异常
在项目中为了提高大并发量时的性能稳定性,经常会使用到线程池来做多线程异步操作,多线程有2种,一种是实现runnable接口,这种没有返回值,一种是实现Callable接口,这种有返回值. 当其中一个线 ...
- C#中的多线程超时处理实践
最近我正在处理C#中关于timeout行为的一些bug.解决方案非常有意思,所以我在这里分享给广大博友们. 我要处理的是下面这些情况: 我们做了一个应用程序,程序中有这么一个模块,它的功能向用户显示一 ...
- libcurl多线程超时设置不安全
from http://blog.csdn.net/sctq8888/article/details/10031219 (1), 超时(timeout) libcurl 是 一个很不错的库,支持htt ...
- WebClient的超时问题及解决
WebClient的超时问题及解决 转自:http://blog.163.com/xiaozhi797@126/blog/static/62440288201112245345838/ Webcl ...
- java 抓取网页图片
import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.Out ...
- 基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v4.1.2版)
目录: 第1版:http://blog.csdn.net/vipbooks/article/details/51912143 第2版:htt ...
- selenuim爬虫实战(日lofter.com)
LOFTER是网易公司2011年8月下旬推出的一款轻博客产品. LOFTER专注于为用户提供简约.易用.有品质.重原创的博客工具.原创社区,以及有品质的手机博客应用. LOFTER首次采用独立域名,口 ...
随机推荐
- python脚本 pyqt 打包成windows可执行exe文件 pyinstaller
今天学习pyqt,做了一些好玩的东西. 好奇之中想试试python脚本编译成可执行文件,一顿查询之后成功了! 我的环境是: windows10 64bit python3.5 pyqt5 ...
- BZOJ.2125.最短路(仙人掌 圆方树)
题目链接 圆方树.做题思路不写了.. 就是当LCA是方点时跳进那个环可以分类讨论一下用树剖而不必须用倍增: 如果v是u的(唯一的那个)重儿子,那么u的DFS序上+1的点即是要找的:否则v会引出一条新的 ...
- (Nginx和PHP下)URL重写,TP实现URL重写
UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址. 优点 一:提高安全性,可以有效的避免一些参数名.ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话 ...
- BZOJ 2743: [HEOI2012]采花 离线树状数组
2743: [HEOI2012]采花 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2743 Description 萧芸斓是Z国的公主, ...
- 关于多重嵌套的JSON数据解析
最近项目中需要封装一套复杂的数据模型返回给前端,大致就是一个用户会有多笔订单,每个订单下可能会有多笔保单, 大致的数据模型如下: 为了方面描述,先看一下一个用户下有一条订单,一条订单下有一个保险订单的 ...
- mysql数据库cup飙升处理思路
1.先top查看是那一个进程,哪个端口占用CPU多. 2.show processeslist查看是否由于大量并发,锁引起的负载问题. 3.否则,查看慢查询,找出执行时间长的sql:explain分析 ...
- 使用postMessage进行react和iframe的数据通信.md
将react的数据传递给iframe 1.首先在父组件(react文件)内引入iframe <iframe style={{border:0,width:"100%",hei ...
- 记ie8及以下版本ie的flash的addCallback的一坑
近来有一需求,播放声音,我在高端浏览器实现了html5 audio标签.低端浏览器实现了flash兼容.但是在调试ie8以下的浏览器发现js死活调不了flash里的addCallback的方法,总报错 ...
- 华为S5300系列升级固件S5300SI-V200R001C00SPC300.cc
附带web,V200版本的第一个固件. 附件: 链接:https://pan.baidu.com/s/1QyXIIVho9AkhxUFYJYAkcw 密码:gaxm
- 使用邮件和RSS两种方式,订阅博客更新通知
分类: 系统运维 点击订阅按钮,可以订阅本博客的更新 输入您的邮件地址,可以订阅本博客的更新通知,及时了解最新内容 使用RSS,订阅-马二进三名人传记-博客 也许大家是第一次听到RSS这个概念,那什么 ...