0

ごめんなさい。私は10秒ごとにHttpWebRequestを使用します。しかし、いつか応答は非常に長い時間待つ。 10秒後に次のプロセスが始まります。したがって、リクエストはスタックされます。本社の措置のために、前回の接続が終了していないため禁止されています。 Timeout、ContinueTimeout、ReadWriteTimeoutのようなリクエストのプロパティを設定しましたが、結果は変更されませんでした。実際には例外に該当します。しかし、私が "Charles Proxy"を見ると、リクエストはまだ応答を待っています。しかし、私は何とかそれをやめなければなりません。私は自分のコードとチャールズの絵を共有します。あなたの答えをありがとう。宜しくお願いします。HttpWebRequest - リクエストの終了

Still Wait Response.

 string jsondata = ""; 
     const string url = "https://website.com"; 

     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 
     NameValueCollection header_items = GetHeaders(); 
     req.Headers.Add(header_items); 
     req.Method = "POST"; 
     req.Host = "website.com"; 
     req.Accept = "application/json, text/plain, */*"; 
     req.ContentType = "application/json;charset=utf-8"; 
     req.KeepAlive = false; 
     req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"; 
     req.Referer = "https://website.com"; 
     req.AllowAutoRedirect = false; 
     req.ContinueTimeout = 5000; 
     req.ReadWriteTimeout = 5000; 
     req.Timeout = 5000; 
     req.ContentLength = 0; 
     ServicePointManager.Expect100Continue = true; 
     ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11; 
     ServicePointManager.DefaultConnectionLimit = 500; 
     ServicePointManager.DnsRefreshTimeout = 0; 
     ServicePointManager.MaxServicePointIdleTime = 5000; 
     ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; }); 
     try 
     { 
      using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) 
      { 
       using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) 
       { 
        jsondata = reader.ReadToEnd(); 
        reader.Close(); 
       } 
       response.Close(); 
      } 
      if (jsondata.Length > 200) 
      { 
       //Do Something 
      } 
     } 
     catch (WebException ex) 
     { 
      req.Abort(); 
      //Do Something 
     } 
     catch (Exception ex) 
     { 
      req.Abort(); 
      //Do Something 
     } 

答えて

関連する問題