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

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

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

Доброго времени суток форумчанам. У меня возникла такая странная ситуация: Есть программа, которая сохраняет файл с web-сервиса.
try
{
    response = GetRequestStream();
    if (response == null)
    {
        LogManager.WriteMessage("Не получен ответ от сайта. Получение данных не возможно.");
        return;
    }
 
    Stream s = response.GetResponseStream();
    if (s == null)
    {
        LogManager.WriteMessage("Не получен поток файла от сайта. Получение данных не возможно.");
        return;
    }
    sr = new StreamReader(s);
    string totalStr = sr.ReadToEnd();
    if (string.IsNullOrWhiteSpace(totalStr))
        LogManager.WriteMessage("В полученом файле не найдено значимых данных. Запись файла не производилась.");
 
    m_manager.RemoveFile();
    sw = new StreamWriter(m_manager.GetFileName());
 
    sw.Write(totalStr);
 
    if (ReadRatings(totalStr, currencies))
        LogManager.WriteMessage("Статистика с сайта считана и сохранена/обновлена");
    else
        LogManager.WriteMessage("В файле не найдено данных для записи");
}
Если ручками запускать - всё работает без нареканий. Но если поставить отложенный запуск (ночной), то по утру в файле оказывается всего одна строка (обычно 20-30). Я первый раз работаю с WebRequest'om, да и вообще эту web-кухню плохо понимаю, потому не пойму, в чём может быть проблема? Сталкивался ли кто с подобным? Могу ли я поток файла получить "не до конца" и раньше времени корректно закрыться и записать не полный файл? Или подобное поведение означает что сервис отдаёт однострочный файл и никак иначе?

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

textual
Листинг программы
public string GetFileName(FileType fType)
        {
            switch (fType)
            {
                case FileType.First:
                    return string.Concat(m_dataFolder, "", DateTime.Now.ToString("yyyy_MM_dd"), "_FirstSite.xml");
                case FileType.Second:
                    return string.Concat(m_logFolder, "", DateTime.Now.ToString("yyyy_MM_dd"), "_Log.txt");
                case FileType.Third:
                    return string.Concat(m_dataFolder, "", DateTime.Now.ToString("yyyy_MM_dd"), "_SecondSite.csv");
                default:
                    return string.Empty;
            }
        }

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


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

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

6   голосов , оценка 4 из 5
Похожие ответы