Exception. The server committed a protocol violation - C#

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

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

Добрый день! Загружаю файлы из интернета таким образом:
int bytesProcessed = 0;
 
                Stream remoteStream = null;
                Stream localStream = null;
                WebResponse response = null;
 
                WebRequest request = WebRequest.Create(url);
                if (request != null)
                {
                    response = request.GetResponse();
                    if (response != null)
                    {
                        remoteStream = response.GetResponseStream();
                        localStream = File.Create(savePath);
 
                        byte[] buffer = new byte[1024];
                        int bytesRead;
                        do
                        {
                            bytesRead = remoteStream.Read(buffer, 0, buffer.Length);
                            localStream.Write(buffer, 0, bytesRead);
                            bytesProcessed += bytesRead;
                        } while (bytesRead > 0);
                    }
                }

                if (response != null) response.Close();
                if (remoteStream != null) remoteStream.Close();
                if (localStream != null) localStream.Close();
У всех пользователей все хорошо, но у некоторых не грузит. Посмотрел логи, а там "The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF" Много читал в интернете про эту ошибку, добавил файл конфигурации в проект, чирканул там
<?xml version ="1.0"?>
<configuration>
  <system.net>
    <settings>
      <httpWebRequest useUnsafeHeaderParsing="true" />
    </settings>
  </system.net>
</configuration>
Без изменений. Не подскажете, как решить проблему со стороны кода?
Заметил, что в конфигурации я написал Http, а на деле использую обычный WebRequest. Исправил его на HttpWebRequest - 0 реакции.

Решение задачи: «Exception. The server committed a protocol violation»

textual
Листинг программы
            WebClient WC = new WebClient();
            WC.DownloadFile("https://mail.ru/", @"путь сохранения");

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


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

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

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