簡體   English   中英

為什么HttpWebRequest在第3次或更多次調用時超時?

[英]Why HttpWebRequest timeout on 3rd or more call?

我需要檢查網址是否存在,然后輸入我的代碼:

   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;
        }
    }

我在第3次通話中收到消息“超時”,我進行了搜索和修復,但無法成功。 誰能幫我?

謝謝大家

我用同樣的問題,經過一些R&d我troubleshooted通過關閉掙扎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();

嘗試下面的代碼。一旦我遇到相同的問題,並使用此示例修復了它。 希望這項工作對您也有幫助。

  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));
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM