Неполный ответ от сервера. Возможно ли? - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток форумчанам. У меня возникла такая странная ситуация: Есть программа, которая сохраняет файл с web-сервиса.
Листинг программы
  1. try
  2. {
  3. response = GetRequestStream();
  4. if (response == null)
  5. {
  6. LogManager.WriteMessage("Не получен ответ от сайта. Получение данных не возможно.");
  7. return;
  8. }
  9. Stream s = response.GetResponseStream();
  10. if (s == null)
  11. {
  12. LogManager.WriteMessage("Не получен поток файла от сайта. Получение данных не возможно.");
  13. return;
  14. }
  15. sr = new StreamReader(s);
  16. string totalStr = sr.ReadToEnd();
  17. if (string.IsNullOrWhiteSpace(totalStr))
  18. LogManager.WriteMessage("В полученом файле не найдено значимых данных. Запись файла не производилась.");
  19. m_manager.RemoveFile();
  20. sw = new StreamWriter(m_manager.GetFileName());
  21. sw.Write(totalStr);
  22. if (ReadRatings(totalStr, currencies))
  23. LogManager.WriteMessage("Статистика с сайта считана и сохранена/обновлена");
  24. else
  25. LogManager.WriteMessage("В файле не найдено данных для записи");
  26. }
Если ручками запускать - всё работает без нареканий. Но если поставить отложенный запуск (ночной), то по утру в файле оказывается всего одна строка (обычно 20-30). Я первый раз работаю с WebRequest'om, да и вообще эту web-кухню плохо понимаю, потому не пойму, в чём может быть проблема? Сталкивался ли кто с подобным? Могу ли я поток файла получить "не до конца" и раньше времени корректно закрыться и записать не полный файл? Или подобное поведение означает что сервис отдаёт однострочный файл и никак иначе?

Решение задачи: «Неполный ответ от сервера. Возможно ли?»

textual
Листинг программы
  1. public string GetFileName(FileType fType)
  2.         {
  3.             switch (fType)
  4.             {
  5.                 case FileType.First:
  6.                     return string.Concat(m_dataFolder, "", DateTime.Now.ToString("yyyy_MM_dd"), "_FirstSite.xml");
  7.                 case FileType.Second:
  8.                     return string.Concat(m_logFolder, "", DateTime.Now.ToString("yyyy_MM_dd"), "_Log.txt");
  9.                 case FileType.Third:
  10.                     return string.Concat(m_dataFolder, "", DateTime.Now.ToString("yyyy_MM_dd"), "_SecondSite.csv");
  11.                 default:
  12.                     return string.Empty;
  13.             }
  14.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы