Задача вроде как примитивная. Необходимо по данному урлу получить картинку с сайта и сохранить на диске. Ниже пример функции, которой я делаю это. Почему-то работает не для всех сайтов.
Например, http://www.linkedin.com/favicon.ico или http://vkontakte.ru/favicon.ico не тянет.
| Код | public static System.Drawing.Image GetImage(string url) { try { var request = (HttpWebRequest)WebRequest.Create(url); //request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"; request.UserAgent = "Mozila/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2;"; request.Accept = "image/gif, image/x-icon, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*"; //request.Headers.Add("Accept-Language", "ru");
// Set some reasonable limits on resources used by this request request.MaximumAutomaticRedirections = 4; request.MaximumResponseHeadersLength = 4; // Set credentials to use for this request. request.Credentials = CredentialCache.DefaultCredentials; var response = (HttpWebResponse)request.GetResponse(); try { // Get the stream associated with the response. var receiveStream = response.GetResponseStream();
// Pipes the stream to a higher level stream reader with the required encoding format. var binReader = new BinaryReader(receiveStream); //byte[] data = binReader.ReadBytes(Convert.ToInt32(response.ContentLength));
try { return System.Drawing.Image.FromStream(binReader.BaseStream); } finally { binReader.Close(); } } finally { response.Close(); } } catch (Exception ex) { return null; } }
|
|