菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
113
0

HttpWebRequest.GetRequestStream方法timeout【第3次操作时就超时】的原因及解决办法

原创
05/13 14:22
阅读数 305608

标签:网上   bre   div   style   str   mon   requests   highlight   操作   

最近在使用HttpWebRequest时,发现对某些网站GetRequestStream只能发两次,第三次开始就会超时,抛出异常,而对另一些网站则完全没有问题。

 
1 Stream stmRequest = httpRequest.GetRequestStream();     
2 stmRequest.Write(btData, 0, btData.Length);     
3 stmRequest.Close();  

 

这个问题让我相当郁闷,不知该从哪下手解决,因为找不到原因。后来,在网上查了些资料,有人说这是一个bug,但似乎不太可能,因为HttpWebRequest这个类由来已久,从.NET Framework 1.0时就已经存在了。
最后,终于在这里找到了答案  http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-compact-framework/5443/Timeout-in-HttpWebRequest-GetRequestStream
问题产生的原因是我在后面的代码里用GetResponseStream生成了一个stream以读取返回结果,但却一直没有关掉。。。

 
HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();     
Stream stmResponse = httpResponse.GetResponseStream(); 

  

解决办法,当然是要在使用完这个stream后将其关掉了:
stmResponse.Close();    

 

HttpWebRequest.GetRequestStream方法timeout【第3次操作时就超时】的原因及解决办法

发表评论

0/200
113 点赞
0 评论
收藏