Skip to main content
 首页 » 编程设计

c#之HttpWebResponse 剥离换行符

2024年01月02日42小虾米

我正在使用以下代码来读取响应:

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%)。任何提示为什么会这样?谢谢!

请您参考如下方法:

您可以只使用以下代码将整个响应写入文件:

using (StreamReader MyResponseStream = new StreamReader(hwresponse.GetResponseStream())) 
{ 
    using (StreamWriter _FileStream = new StreamWriter("request.txt", true)) 
    { 
        _FileStream.Write(MyResponseStream.ReadToEnd()); 
    } 
}