C# 如何克服从503服务器不可用的错误?

C# 如何克服从503服务器不可用的错误?,c#,http,web,bots,C#,Http,Web,Bots,我正在对未知服务器执行http请求。当我从浏览器发出请求时,它就像一个符咒一样工作,但每当我从我的应用程序发出相同的请求时,503服务器就不可用 我搜索了这个错误,发现这是由于服务器暂时不可用造成的,另一个错误得到了回答,因为服务器认为这个调用是由bot应用程序发出的 我向同一台服务器发出了相同的请求,uri中只有一个小的变化。除此之外,所有以前的通话都正常 private static Root_BoardingStationList Request_BoardingStation(strin

我正在对未知服务器执行http请求。当我从浏览器发出请求时,它就像一个符咒一样工作,但每当我从我的应用程序发出相同的请求时,503服务器就不可用

我搜索了这个错误,发现这是由于服务器暂时不可用造成的,另一个错误得到了回答,因为服务器认为这个调用是由bot应用程序发出的

我向同一台服务器发出了相同的请求,uri中只有一个小的变化。除此之外,所有以前的通话都正常

private static Root_BoardingStationList Request_BoardingStation(string uri, string auth,string greq, string sp_csr)
    {      
        Root_BoardingStationList rootBoaringStationEnquiry = null;
        string captchaImageURL = string.Empty;
        string html = string.Empty;
        try
        {
            var request = (HttpWebRequest)WebRequest.Create(uri);
            request.Referer = "https://www.irctc.co.in/nget/train-list";
            request.Headers.Set("Authorization", "Bearer " + login_authorization_bearer);
            request.Headers.Set("greq", greq);
            request.Headers.Set("spa-csrf-token", sp_csr);
            request.Proxy = null;
            request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate | DecompressionMethods.None;
            request.CookieContainer = new CookieContainer();
            request.Method = method;
            request.ContentType = contentType;
            request.KeepAlive = true;
            request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
            request.Connection = "keepalive";                

            using (var response_ = (HttpWebResponse)request.GetResponse())
            {
                var responseString = new StreamReader(response_.GetResponseStream()).ReadToEnd();
            }                
        }
        catch (WebException ex)
        {
            ExceptionLog.HandleException(ex);
            using (var sr = new StreamReader(ex.Response.GetResponseStream()))
                html = sr.ReadToEnd();

        }
        return rootBoaringStationEnquiry;
    } 
请检查并帮助


我找到了上述问题的解决方案

 csrf-token was mismatched. 
我已经更正了csrf令牌,这就像一个符咒

我在用

request.Headers.Set("spa-csrf-token", sp_csr);

并将错误的sp_csr值发送到服务器。

当该服务器决定将您作为机器人列入黑名单时,我们无法判断该服务器遵循的规则。你可能需要反复试验。这甚至可能是不可能的。使用诸如Chrome headless之类的东西来模拟用户点击更有意义。请提及-ve标记的原因,因为我必须知道原因,这样我才能真正提问。。。非常感谢。