【问题标题】:Why HttpWebRequest timeout on 3rd or more call?为什么 HttpWebRequest 在第三次或更多次调用时超时?
【发布时间】:2014-03-19 10:14:02
【问题描述】:

我需要检查一个 url 是否存在,然后是我的代码:

   private bool CheckConnection(String URL)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
            request.UseDefaultCredentials = true;
            request.KeepAlive = false;
            request.Timeout = 5000;
            request.ReadWriteTimeout = 5000;
            request.ServicePoint.ConnectionLeaseTimeout = 5000;
            request.ServicePoint.MaxIdleTime = 5000;
            bool bReturn = false;
            using (var response = (HttpWebResponse)request.GetResponse())
            {
                bReturn = (response.StatusCode == HttpStatusCode.OK);
            }
            request.Abort();

        return bReturn;
        }
        catch
        {
            return false;
        }
    }

我在第三次通话时收到消息“超时”,我搜索并修复但无法成功。 谁能帮帮我?

谢谢大家

【问题讨论】:

    标签: c# timeout httpwebrequest httpwebresponse


    【解决方案1】:

    我一直在努力解决同样的问题,经过一些研发后,我通过在循环中断言响应代码后关闭 HttpResponse 对象进行了故障排除:response.Close();

    我的代码:

    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
    int respcode = (int)response.StatusCode;
    Assert.IsTrue(respcode == 302 || respcode == 200);
    response.Close();
    

    【讨论】:

      【解决方案2】:

      试试下面的代码。一旦我遇到了同样的问题,我就用这个例子修复了它。希望这对你也有用。

        using (var client = new WebClient())
              {
                var values = new NameValueCollection
               {
                  { "key", "This is a test that posts this string to a Web server." }
               };
                  string url = "http://www.contoso.com/PostAccepter.aspx";
                  byte[] result = client.UploadValues(url, values);
                  Console.WriteLine(Encoding.UTF8.GetString(result));
              }
      

      【讨论】:

      • 按照你的建议,但是在第三次调用时,它会在 webclient 超时(100s)后延迟,然后处理这个函数:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多