title author date CreateTime categories
WPF 网络 request 的 read 方法不会返回
lindexi
2019-06-23 11:26:26 +0800
2019-06-23 11:26:26 +0800
WPF

我最近为宝资通写软件,这个软件需要从网上下网页。但是使用 HttpRequest 的时候发现 StreamReader 等方法可能等待很久不会返回,能否有方法设置超时解决卡住线程

使用 HttpRequest 的时候,用 Stream 的方法读取需要服务器返回,如果服务器没有返回,那么这个同步方法将会卡住不会返回

可以通过 ReadWriteTimeout 设置超时时间

request.ReadWriteTimeout = 20000;

加上超时,就让应用不会在服务器没有返回等待太久。因为有些时候服务器或网络差,不能在比较短时间返回,我们设置这个不能太小。

               HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.Timeout = 20000;
//网络响应
request.ReadWriteTimeout = 20000; //request.Headers.Add(HttpRequestHeader.Accept, "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
//request.Headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
request.Method = "GET";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
//request.CachePolicy=new HttpRequestCachePolicy()
//{ //}; request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent =
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36";
request.AllowAutoRedirect = true;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
{
return stream.ReadToEnd().Replace("\\u0027", "'");
}
}

最新文章

  1. Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!
  2. CI框架SESSION重写
  3. redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据
  4. 教你用Cocosdx导出安卓安装文件(.apk)(一)
  5. Web Service学习之六:CXF解决无法处理的数据类型
  6. VS2005上一个坑:关于pch 的 error C1023
  7. android 注释常用标签
  8. javascript 数据结构和算法读书笔记 > 第二章 数组
  9. eclipse设备SVN插入
  10. [妙味JS基础]第十一课:字符串、查找高亮显示
  11. hihoCoder1310 岛屿 (dfs)
  12. Prometheus 自定义exporter 监控key
  13. C语言#和##操作符使用方法
  14. bzoj1663: [Usaco2006 Open]赶集
  15. exgcd模板
  16. ubuntu16.04卸载tensorflow0.11版本,安装tensorflow1.1.0版本
  17. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——集群安装总览
  18. Android Usb Camera HAL框架
  19. Flow类
  20. 千字短文解决工程师们关于SPI的迷糊!

热门文章

  1. GVEdit中使用graphviz
  2. zabbix告警模板
  3. 使用nodejs安装http-server
  4. git与github建立链接(学习笔记)
  5. php学习知识点框架
  6. redis教程(二)-----redis事务、记录日志到redis、分布式锁
  7. gin入门-1
  8. webpack4配置基础
  9. IntelliJ IDEA包层级结构显示方式
  10. bzoj 1191 [HNOI2006]超级英雄Hero——二分图匹配