HttpWebRequest实现下载图片至本地
本文为大家分享了HttpWebRequest实现下载图片至本地的具体代码,供大家参考,具体内容如下
HttpWebRequest发送web请求,获取流文件,保存至本地
usingSystem; usingSystem.IO; usingSystem.Net; usingSystem.Text; usingSystem.Web.Mvc; namespaceWeb.Controllers { publicclassHomeController:Controller { stringurl="http://www.***.com/Image.aspx?ucode=ucode"; publicStreamGetFileToStream(stringfilePath) { FileStreamfileStream=newFileStream(filePath,FileMode.Open,FileAccess.Read,FileShare.Read); byte[]bytes=newbyte[fileStream.Length]; fileStream.Read(bytes,0,bytes.Length); fileStream.Close(); StreamstreamFile=newMemoryStream(bytes); returnstreamFile; } publicvoidMethod1() { stringfileName=@"\upload\"+GenerateTimeStamp()+".jpg"; stringwebPath=Server.MapPath(fileName); stringpathName=@"d:\"+GenerateTimeStamp()+".jpg"; HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url); req.ServicePoint.Expect100Continue=false; req.Method="GET"; req.KeepAlive=true; req.ContentType="image/png"; HttpWebResponsersp=(HttpWebResponse)req.GetResponse(); System.IO.Streamstream=null; try { //以字符流的方式读取HTTP响应 stream=rsp.GetResponseStream(); System.Drawing.Image.FromStream(stream).Save(pathName); } finally { //释放资源 if(stream!=null)stream.Close(); if(rsp!=null)rsp.Close(); } } protectedvoidMethod2() { stringfileName=@"\upload\"+GenerateTimeStamp()+".jpg"; stringwebPath=Server.MapPath(fileName); stringpathName=@"d:\"+GenerateTimeStamp()+".jpg"; HttpWebRequestmyRequest=(HttpWebRequest)WebRequest.Create(url); myRequest.Method="GET"; HttpWebResponsemyResponse=null; try { myResponse=(HttpWebResponse)myRequest.GetResponse(); StreamReaderreader=newStreamReader(myResponse.GetResponseStream(),Encoding.UTF8); Streamstream=myResponse.GetResponseStream(); #region保存下载图片 MemoryStreamms=null; Byte[]buffer=newByte[myResponse.ContentLength]; intoffset=0,actuallyRead=0; do { actuallyRead=stream.Read(buffer,offset,buffer.Length-offset); offset+=actuallyRead; } while(actuallyRead>0); ms=newMemoryStream(buffer); byte[]buffurPic=ms.ToArray(); System.IO.File.WriteAllBytes(pathName,buffurPic); #endregion } //异常请求 catch(WebExceptionex) { } } protectedvoidMethod3() { stringfileName=@"\upload\"+GenerateTimeStamp()+".jpg"; stringwebPath=Server.MapPath(fileName); stringpathName=@"d:\"+GenerateTimeStamp()+".jpg"; HttpWebRequestmyRequest=(HttpWebRequest)WebRequest.Create(url); myRequest.Method="GET"; HttpWebResponsemyResponse=null; try { myResponse=(HttpWebResponse)myRequest.GetResponse(); StreamReaderreader=newStreamReader(myResponse.GetResponseStream(),Encoding.UTF8); Streamstream=myResponse.GetResponseStream(); #region保存下载图片 FileStreamfileStream=newFileStream(pathName,FileMode.Create,FileAccess.Write); byte[]bytes=newbyte[1024]; intreadSize=0; while((readSize=stream.Read(bytes,0,1024))>0) { fileStream.Write(bytes,0,readSize); fileStream.Flush(); } #endregion myResponse.Close(); stream.Close(); fileStream.Close(); } //异常请求 catch(WebExceptionex) { } finally { } } publicstringGenerateTimeStamp() { TimeSpants=DateTime.UtcNow-newDateTime(1970,1,1,0,0,0,0); returnConvert.ToInt64(ts.TotalMilliseconds).ToString(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。