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