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();
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。