WebClient.DownLoadString报错:连接被意外关闭
调用WebClient的DownLoadString方法调用接口,当数据量比较小的时候(十几条数据)一切正常。后来对方突然放了一千多条数据,然后就报错了:连接被意外关闭。
先是以为是对方接口没有在输出完毕就关闭了连接对象,经过排查否定此种可能。通过HttpWebRequest调用,然后循环读取字节流,不报错,但是读取不完整。
最后修改为这种方式才解决:
public string GetManyData(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.ContentType = "application/json";
request.Accept = "application/json,text/javascript,*/*,q=0.01";
request.Headers.Add("Accept-Encoding", "deflate,gzip");
request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip | DecompressionMethods.None;
using (Stream stream =request.GetResponse().GetResponseStream())
{
StreamReader sr = new StreamReader(stream);
return sr.ReadToEnd();
}
}
还没有仔细研究内中原因。有可能是字符串的二进制安全导致读取不完整,而WebClient内部又没有处理好这个问题。
最新文章
- CSS3中的px,em,rem,vh,vw辨析
- EasyUI datagrid : 启用行号、固定列及多级表头后,头部行号位置单元格错位的问题
- 利用PBfunc在Powerbuilder中使用https获取微信的AccessToken
- 敏捷软件开发(1)--- STATE 模式
- LA 3695 Distant Galaxy
- [转载]LINQ 中的 select
- iOS开发——UI篇&;提示效果
- javascript语句语义大全(3)
- java第十周学习总结
- 使用Nwjs开发桌面应用体验
- SAP QA32 做使用决策系统报错:分类数据的不一致性=>;交易终止
- 在word 2010中采用EndNote X7插入引用
- D3.js学习
- 【BZOJ】3926: [Zjoi2015]诸神眷顾的幻想乡
- mysql实现复杂groupby : GROUP_CONCAT
- 求有向图的强连通分量个数 之 Kosaraju算法
- 网络编程(socket,套接字)
- Jmeter中文乱码
- 如何向女朋友解释int==Integer为true
- poj2018(高精度二分+dp)