调用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内部又没有处理好这个问题。

最新文章

  1. CSS3中的px,em,rem,vh,vw辨析
  2. EasyUI datagrid : 启用行号、固定列及多级表头后,头部行号位置单元格错位的问题
  3. 利用PBfunc在Powerbuilder中使用https获取微信的AccessToken
  4. 敏捷软件开发(1)--- STATE 模式
  5. LA 3695 Distant Galaxy
  6. [转载]LINQ 中的 select
  7. iOS开发——UI篇&提示效果
  8. javascript语句语义大全(3)
  9. java第十周学习总结
  10. 使用Nwjs开发桌面应用体验
  11. SAP QA32 做使用决策系统报错:分类数据的不一致性=>交易终止
  12. 在word 2010中采用EndNote X7插入引用
  13. D3.js学习
  14. 【BZOJ】3926: [Zjoi2015]诸神眷顾的幻想乡
  15. mysql实现复杂groupby : GROUP_CONCAT
  16. 求有向图的强连通分量个数 之 Kosaraju算法
  17. 网络编程(socket,套接字)
  18. Jmeter中文乱码
  19. 如何向女朋友解释int==Integer为true
  20. poj2018(高精度二分+dp)

热门文章

  1. Struts2-整理笔记(二)常量配置、动态方法调用、Action类详解
  2. java 集合类基础问题汇总
  3. 每天学一点Docker(5)——了解Docker架构
  4. python编辑器pydev安装
  5. Linux下查找文件的方法
  6. angular4.0项目文件解读
  7. Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序
  8. socket之粘包发生问题
  9. 【数论·错位排列】bzoj4517 排列计数
  10. JS 获取字符串实际长度