2012-02-27 3 views
2

Я использую следующий код, чтобы прочитать ответ:HttpWebResponse зачистки символы новой строки

using (Stream MyResponseStream = hwresponse.GetResponseStream()) 
{ 
     byte[] MyBuffer = new byte[4096]; 
     int BytesRead; 

     while (0 < (BytesRead = MyResponseStream.Read(MyBuffer, 0, MyBuffer.Length))) 
     { 
      ByteArrayToFile("request.txt", MyBuffer, BytesRead); 
     } 
} 

Это функция для записи в файл:

public void ByteArrayToFile(string _FileName, byte[] _ByteArray, int BytesRead) 
{ 
     System.IO.FileStream _FileStream = new System.IO.FileStream(_FileName, System.IO.FileMode.Append, System.IO.FileAccess.Write); 
     _FileStream.Write(_ByteArray, 0, BytesRead); 
     _FileStream.Close(); 
} 

Если я использую WebClient, я получаю новые строки все правильно разбираются. Когда я использую HttpWebResponse, новые строковые символы теряются (не все, но 80%). Какие намеки, почему это происходит? Благодаря!

+1

Это ужасно неэффективно. Попробуйте открыть файл до тех пор, пока вы не закончите писать его, вместо того, чтобы открывать/закрывать его для каждой операции записи. –

+0

Спасибо! Я все еще сталкиваюсь с проблемой новой строки. Любые подсказки, как с этим бороться? – user1015551

+0

Похоже, вы просто пишете текстовый файл ... вы можете попробовать system.io.streamreader вместо chunking. –

ответ

0

Вы можете просто использовать следующий код, чтобы написать весь ответ на файл:

using (StreamReader MyResponseStream = new StreamReader(hwresponse.GetResponseStream())) 
{ 
    using (StreamWriter _FileStream = new StreamWriter("request.txt", true)) 
    { 
     _FileStream.Write(MyResponseStream.ReadToEnd()); 
    } 
} 
Смежные вопросы