Ответ 1
Проблема в том, что вы интерпретируете двоичные данные как текст, даже если это не так - как только вы начинаете рассматривать контент как строку вместо байтов, у вас проблемы. Вы не указали детали своего класса-оболочки, но я предполагаю, что ваше свойство Content
возвращает строку - вы не сможете использовать это. Если ваш класс-оболочка не позволяет вам получить необработанные данные из веб-ответа, вам нужно будет его изменить.
Если вы используете .NET 4, вы можете использовать новый метод CopyTo:
using (Stream output = File.OpenWrite("file.dat"))
using (Stream input = http.Response.GetResponseStream())
{
input.CopyTo(output);
}
Если вы не используете .NET 4, вам нужно сделать копирование вручную:
using (Stream output = File.OpenWrite("file.dat"))
using (Stream input = http.Response.GetResponseStream())
{
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}