Получение двоичных данных по http в .NET
Поставим перед собой задачу написания функции, которая считывала бы jpg, gif файл через Интернет и
сохраняла его на локальной машине.
Исходный код этого метода GetBinaryData:
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
// текст программы
// нужный метод
public bool GetBinaryData(string strUrl, string strPathFileName)
{
BinaryReader objStream = null;
bool ret = false;
try
{
HttpWebRequest objRequest = (HttpWebRequest) WebRequest.Create(strUrl);
objRequest.Timeout = 120000; // 20 секунд
HttpWebResponse objResponse = (HttpWebResponse) objRequest.GetResponse();
objStream = new BinaryReader(objResponse.GetResponseStream());
// считываем данные в массив
byte[] imgData = objStream.ReadBytes((int)objResponse.ContentLength);
FileStream newFile = new FileStream(strPathFileName, FileMode.Create);
// записываем в файл
newFile.Write(imgData, 0, imgData.Length);
newFile.Close();
// успех - возвращаем true
ret = true;
}
catch (Exception ex)
{
ret = false;
}
finally
{
if (objStream != null)
{
objStream.Close();
}
}
return ret;
}
|
|