首页 / .NET / 正文

[.NET].NET应用程序开发中如何修改WebClient对象的超时时间(timeout)?

7767 发布于: 2018-10-31 读完约需2分钟

问题描述

在.NET应用程序开发中,很多时候需要使用程序向远程的API发起HTTP请求。而.NET的程序集内置了一个可以发起HTTP请求的类:WebClientWebClient实现了下载/上传的一些方法,如:DownloadData,DownloadFile,DownloadString,OpenRead,OpenWrite,UploadData,UploadFile,UploadString,UploadValues等等。这些方法可以方便我们在.NET开发中更方便地实现字符串、或者文件,或者数据流的上传或者下载功能。

但如果远程服务速度比较慢,遇到请求超时的情况,WebClient是不能直接设置请求超时时间的(默认的超时时长为100秒),也就是说直接使用WebClient的情况下,如果远程服务在100秒内还未响应完成,则会超时。

那么,如何设置WebClient的超时时长呢?

方案一

重写WebClient的GetWebRequest()方法,这样可以设置超时时长,如下:

使用WebClient的地方换成MyWebClient,如:

方案二

重写WebClient的GetWebRequest,同时新增设置超时时长的公开属性,如下:

调用示例代码:

方案三

不使用WebClient,而使用HttpWebRequest,因为HttpWebRequest支持设置Timeout的属性,如下:

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [.NET].NET应用程序开发中如何检测一个SqlDataReader对象中是否包含某个列名?

下一篇: [ASP.NET Core Razor Pages系列教程]ASP.NET Core Razor Pages中的ViewImports文件(06)

本文永久链接码友网 » [.NET].NET应用程序开发中如何修改WebClient对象的超时时间(timeout)?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册