Exemple #1
0
        public static ResponseObject AskSite()
        {
            string url = string.Format(urlPat,
                                       station0_name, station0_code,
                                       station1_name, station1_code,
                                       date, DateTime.Parse(date).AddMonths(1).ToString("dd.MM.yyyy"));

            using (WebClientWithCookies cli = new WebClientWithCookies()
            {
                Encoding = Encoding.UTF8
            }) {
                string            ridResponseStr = cli.DownloadString(url);
                RidResponseObject ridObj         = JsonConvert.DeserializeObject <RidResponseObject>(ridResponseStr);

                if (ridObj.ResultCode.Equals("RID", StringComparison.OrdinalIgnoreCase))
                {
                    ResponseObject resultData;
                    int            attempts = 0;
                    do   // Спрашиваем сервер до тех пор, пока не будет готов ответ
                    {
                        attempts++;
                        Thread.Sleep(DELAY_TIME);

                        string finalResponseStr = cli.DownloadString(url + "&rid=" + ridObj.RidValue);
                        resultData = JsonConvert.DeserializeObject <ResponseObject>(finalResponseStr);

                        if (resultData.ResultCode.Equals("Error", StringComparison.OrdinalIgnoreCase))
                        {
                            throw new Exception(string.Format("Ошибка запроса, возвращенный код: \"{0}\", сырой ответ: \n\"{1}\"", ridObj.ResultCode, ridResponseStr));
                        }
                    } while (!resultData.ResultCode.Equals("OK", StringComparison.OrdinalIgnoreCase) &&
                             attempts < MAX_ATTEMPTS_COUNT);

                    return(resultData);
                }
                else
                {
                    throw new Exception(string.Format("Ошибка запроса, возвращенный код: \"{0}\", сырой ответ: \n\"{1}\"", ridObj.ResultCode, ridResponseStr));
                }
            }
        }
Exemple #2
0
        public static ResponseObject AskSite()
        {
            string url = string.Format(urlPat,
                                       station0_name, station0_code,
                                       station1_name, station1_code,
                                       date, DateTime.Parse(date).AddMonths(1).ToString("dd.MM.yyyy"));

            using (WebClientWithCookies cli = new WebClientWithCookies() { Encoding = Encoding.UTF8 }) {

                string ridResponseStr = cli.DownloadString(url);
                RidResponseObject ridObj = JsonConvert.DeserializeObject<RidResponseObject>(ridResponseStr);

                if (ridObj.ResultCode.Equals("RID", StringComparison.OrdinalIgnoreCase)) {

                    ResponseObject resultData;
                    int attempts = 0;
                    do { // Спрашиваем сервер до тех пор, пока не будет готов ответ
                        attempts++;
                        Thread.Sleep(DELAY_TIME);

                        string finalResponseStr = cli.DownloadString(url + "&rid=" + ridObj.RidValue);
                        resultData = JsonConvert.DeserializeObject<ResponseObject>(finalResponseStr);

                        if (resultData.ResultCode.Equals("Error", StringComparison.OrdinalIgnoreCase)) {
                            throw new Exception(string.Format("Ошибка запроса, возвращенный код: \"{0}\", сырой ответ: \n\"{1}\"", ridObj.ResultCode, ridResponseStr));
                        }

                    } while ( !resultData.ResultCode.Equals("OK", StringComparison.OrdinalIgnoreCase)
                                && attempts < MAX_ATTEMPTS_COUNT );

                    return resultData;
                } else {
                    throw new Exception(string.Format("Ошибка запроса, возвращенный код: \"{0}\", сырой ответ: \n\"{1}\"", ridObj.ResultCode, ridResponseStr));
                }
            }
        }