Как побороть с 503 сервера недоступную ошибку? - PullRequest
0 голосов
/ 02 сентября 2018

Я делаю http запрос на неизвестный сервер. Когда я делаю запрос из браузера, он работает как чудо, но всякий раз, когда я делаю тот же запрос из моего приложения, я получаю 503 Сервер недоступен.

Я искал эту ошибку и обнаружил, что это вызвано тем, что сервер временно недоступен, а другой ответил, что сервер считает, что этот вызов сделан из приложения бота.

Я сделал такой же запрос на тот же сервер, и в 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;
    } 

Пожалуйста, проверьте и помогите.

enter image description here

1 Ответ

0 голосов
/ 13 декабря 2018

Я нашел решение для выше как

 csrf-token was mismatched. 

Я исправил csrf-token , и это работает как заклинание.

Я использовал

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

и неправильно отправил sp_csr значение на сервер.

...