HttpWebRequest 下载图片至本地

来源:互联网 发布:平板一键刷机软件 编辑:程序博客网 时间:2024/05/21 18:41

HttpWebRequest发送web请求,获取流文件,保存至本地

using System;using System.IO;using System.Net;using System.Text;using System.Web.Mvc;namespace Web.Controllers{    public class HomeController : Controller    {        string url = "http://www.***.com/Image.aspx?ucode=ucode";        public Stream GetFileToStream(string filePath)        {            FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);            byte[] bytes = new byte[fileStream.Length];            fileStream.Read(bytes, 0, bytes.Length);            fileStream.Close();            Stream streamFile = new MemoryStream(bytes);            return streamFile;        }        public void Method1()        {            string fileName = @"\upload\" + GenerateTimeStamp() + ".jpg";            string webPath = Server.MapPath(fileName);            string pathName = @"d:\" + GenerateTimeStamp() + ".jpg";            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);            req.ServicePoint.Expect100Continue = false;            req.Method = "GET";            req.KeepAlive = true;            req.ContentType = "image/png";            HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();            System.IO.Stream stream = null;            try            {                //以字符流的方式读取HTTP响应                stream = rsp.GetResponseStream();                System.Drawing.Image.FromStream(stream).Save(pathName);            }            finally            {                // 释放资源                if (stream != null) stream.Close();                if (rsp != null) rsp.Close();            }        }        protected void Method2()        {            string fileName = @"\upload\" + GenerateTimeStamp() + ".jpg";            string webPath = Server.MapPath(fileName);            string pathName = @"d:\" + GenerateTimeStamp() + ".jpg";            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);            myRequest.Method = "GET";            HttpWebResponse myResponse = null;            try            {                myResponse = (HttpWebResponse)myRequest.GetResponse();                StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);                Stream stream = myResponse.GetResponseStream();                #region 保存下载图片                MemoryStream ms = null;                Byte[] buffer = new Byte[myResponse.ContentLength];                int offset = 0, actuallyRead = 0;                do                {                    actuallyRead = stream.Read(buffer, offset, buffer.Length - offset);                    offset += actuallyRead;                }                while (actuallyRead > 0);                ms = new MemoryStream(buffer);                byte[] buffurPic = ms.ToArray();                System.IO.File.WriteAllBytes(pathName, buffurPic);                #endregion            }            //异常请求            catch (WebException ex)            {            }        }        protected void Method3()        {            string fileName = @"\upload\" + GenerateTimeStamp() + ".jpg";            string webPath = Server.MapPath(fileName);            string pathName = @"d:\" + GenerateTimeStamp() + ".jpg";            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);            myRequest.Method = "GET";            HttpWebResponse myResponse = null;            try            {                myResponse = (HttpWebResponse)myRequest.GetResponse();                StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);                Stream stream = myResponse.GetResponseStream();                #region 保存下载图片                FileStream fileStream = new FileStream(pathName, FileMode.Create, FileAccess.Write);                byte[] bytes = new byte[1024];                int readSize = 0;                while ((readSize = stream.Read(bytes, 0, 1024)) > 0)                {                    fileStream.Write(bytes, 0, readSize);                    fileStream.Flush();                }                #endregion                myResponse.Close();                stream.Close();                fileStream.Close();            }            //异常请求            catch (WebException ex)            {            }            finally            {            }        }        public string GenerateTimeStamp()        {            TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);            return Convert.ToInt64(ts.TotalMilliseconds).ToString();        }    }}


0 0
原创粉丝点击