您的位置:首页 > 编程语言 > C#

C#实现下载网页图片文件

2011-04-01 12:29 561 查看
把方法封装到你的类中,编译一下吧!这段代码是从项目中提取出的简单一段。你使用的使用可能根据具体情况修改一下。

]        /// <summary>
/// 执行POST请求,获娶验证码图片
/// </summary>
/// <param name="localHost">Post请求的图片地址</param>
/// <param name="referer">Referer地址</param>
/// <returns>图片文件名称</returns>
public string GetPostImage(string localHost,string referer)
{
Random rdFile = new Random();
string filename = rdFile.Next(9999).ToString() + ".png";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(localHost);
request.Method = "GET";
request.ContentType = "image/png";
request.Referer = referer;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
FileStream fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);
Stream stream = response.GetResponseStream();
long length = response.ContentLength;
long i = 0;
while (i < length)
{
byte[] bit = new byte[1024];
i += stream.Read(bit, 0, bit.Length);
fs.Write(bit, 0, bit.Length);
}
stream.Close();
fs.Close();
fs.Dispose();
response.Close();
return filename;
}


C#模拟POST请求:

/// <summary>
/// 执行一次Post请求
/// </summary>
/// <param name="localHost">请求地址</param>
/// <param name="post">Post请求串</param>
/// <param name="referer">Referer地址</param>
/// <returns>请求主体内容</returns>
public string GetPost(string localHost, string post,string referer)
{
string content = "";
UTF8Encoding encodingUtf8 = new UTF8Encoding();
byte[] byteDate = encodingUtf8.GetBytes(post);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(localHost.Trim());
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteDate.Length;
request.Referer = referer;
Stream stream = request.GetRequestStream();
stream.Write(byteDate, 0, byteDate.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader read = new StreamReader(response.GetResponseStream(), Encoding.UTF8); //默认编码
content = read.ReadToEnd();
read.Close();
stream.Close();
response.Close();
return content;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: