Exception. The server committed a protocol violation - C#
Формулировка задачи:
Добрый день! Загружаю файлы из интернета таким образом:
У всех пользователей все хорошо, но у некоторых не грузит. Посмотрел логи, а там
"The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF"
Много читал в интернете про эту ошибку, добавил файл конфигурации в проект, чирканул там
Без изменений. Не подскажете, как решить проблему со стороны кода?
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();
<?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/", @"путь сохранения");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д