收录日期:2021/03/03 01:41:10 时间:2016/06/29 21:50:39 标签:C#
rt

我用webclient.DownloadFileAsync方法非同期下载文件

会有连接超时发生吗?默认连接超时时间是多少呢?

顺便给推荐几个关于这个webclient超时的网站或文章,谢谢。
学习中...
帮顶了!!
真的没人知道吗?自己顶一下
WebClient类是重写了WebRequest方法得到的DownloadFile,DownloadData
WebRequest类本来的Timeout属性的,没给加 
下面重写 

/// <summary> /// 设置请求超时 /// </summary> private int _Timeout=30; public int Timeout { get { return _Timeout*1000; } set { _Timeout=value; } } /// <summary> /// 下载文件到本地 /// </summary> /// <param name="?"></param> public void DownloadFile(string address, string fileName) { FileStream stream1 = null; bool flag1 = false; try { stream1 = new FileStream(HttpContext.Current.Server.MapPath(fileName), FileMode.Create, FileAccess.Write); WebRequest request1 = WebRequest.Create(address); request1.Timeout=Timeout;//加上超时时间 //request1.Credentials = this.Credentials; //this.CopyHeadersTo(request1); WebResponse response1 = request1.GetResponse(); //this.m_responseHeaders = response1.Headers; long num1 = response1.ContentLength; num1 = ((num1 == -1) || (num1 > 0x7fffffff)) ? ((long) 0x7fffffff) : num1; byte[] buffer1 = new byte[Math.Min(0x2000, (int) num1)]; using (Stream stream2 = response1.GetResponseStream()) { int num2; do { num2 = stream2.Read(buffer1, 0, buffer1.Length); stream1.Write(buffer1, 0, num2); } while (num2 != 0); } flag1 = true; } catch (Exception exception1) { throw new WebException("net_webclient", exception1); } finally { if (stream1 != null) { stream1.Close(); stream1 = null; } if (!flag1) { try { File.Delete(fileName); } catch { } } } }


注:百度上找的


1 分钟吧 ,

我通常设置的是 45 秒
WebClient类是重写了WebRequest方法得到的DownloadFile,DownloadData 
WebRequest类本来的Timeout属性的,没给加

谢谢你的答复,最近我也查了一下相关的资料,
这段代码是否可以这样理解,WebClient类集成了WebRequest类,并且用WebRequest和WebResponse来
进行下载。

那么,当我运用WebClient类的时候,如果不做任何设置(timeout),是否可以认为WebClient的默认
timeout就是WebRequest类的默认timeout。

感谢yaazz的答复,想搞清楚一点,也希望不明白的人一起来讨论。
自己实践了一下

当使用WebClient类的同期方法时(例如WebClient.DownloadString)
WebClient使用WebRequest类的默认超时时间(100秒)

当使用WebClient类的非同期方法时(例如WebClient.DownloadStringAsync)
没有发生超时现象,也就是说DownloadStringCompleted事件没有发生。

到目前为止就知道这些了,就没有人想留下一点自己的意见吗?

希望有人来参与啊,

感谢yaazz的答复,我想等等在结帖,希望搞清楚,同时我也会不断尝试
明白了,和大家分享
up.........................

如何知道一个线程还在“正常运行”? ADO在取得CLOB類型字段時是否可以使用select * 的SQL語句? eclipse+tomcat+lomboz开发jsp连接mssql数据库 FC5下不能使用命令,请解决.谢谢 在windows程序中,我如何能用按钮来控制datagrid的列是否显示? 我的数据掉了一部份,还有一个昨天十二点钟的数据库备份,如何通过日志文件来恢复某一个时间段之前的所有数据. 问个输入的概念 有用installAnywhere吗?这里有个问题,求助一下 请问java查询SQLServer数据库的问题 pdf格式的文件如何转变为WORD或者CAD格式? 帮忙翻译? 请教有关weblogic 建立连接池的问题. C#中關於取消上一個動作做的何事情,請問各位大哥該怎麼做??? 如果在CS文件中使用Response对象? 求web.cofing加密的方法。。。。 问一个变量赋值的问题 请教如何比较一个字符串从第4位后,字符串得一致性? 请教,点击Button控件以后发生了什么? 调查一下,新网DNS服务器今天下午受攻击,你受影响了吗? 高手帮帮忙,救救人啊.今天不完成,明天还不被别揍死!!!! 发送消息的问题 弱问:VC7的消息处理函数写法和VC6有什么区别 关于打印图片的问题. 最近打算考软件设计师,请问网上哪里有比较好的学习网站和资料,谢谢 数据库主从文件问题 哪儿可以免费下载思科路由器模拟器 【求助】ASP.NET中使用存储过程的问题! 请教下链接器脚本的文件的知识?? 新建项目自动生成的文件的作用 框架页面中,页面内容溢出,但是没有滚动条,是怎么回事?