zoukankan      html  css  js  c++  java
  • HttpWebRequest.GetRequestStream方法timeout的原因及解决办法

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

    [c-sharp:nogutter] view plaincopy
    1. // Send the data.      
    2. Stream stmRequest = httpRequest.GetRequestStream();     
    3. stmRequest.Write(btData, 0, btData.Length);     
    4. 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以读取返回结果,但却一直没有关掉。。。

    [c-sharp:nogutter] view plaincopy
    1. HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();     
    2. Stream stmResponse = httpResponse.GetResponseStream();    
    解决办法,当然是要在使用完这个stream后将其关掉了:
    [c-sharp] view plaincopy
    1. stmResponse.Close();    
  • 相关阅读:
    Js 之获取QueryString的几种方法
    Go语言 之md5加密
    跨域取文件(跨项目)
    System.IO
    System.Threading.Tasks
    JS存取Cookies值,附自己写的获取cookies的一个方法
    HttpServerUtility 和 HttpUyility
    JS格式化时间
    JS获取页面传过来的值
    Navigator 对象
  • 原文地址:https://www.cnblogs.com/xx_cs/p/2508084.html
Copyright © 2011-2022 走看看