用 WebClient 轻松实现文件下载上传、网页抓取

我们知道用 WebRequest(HttpWebRequestFtpWebRequest) 和 WebResponse(HttpWebResponse、FtpWebResponse)可以实现文件下载上传、网页抓取,可是用 WebClient 更轻松。

用 DownloadFile 下载网页

using (System.Net.WebClient client =  new System.Net.WebClient())
{
    client.DownloadFile( "http://www.cftea.com/""C:\\foo.txt");
}

就这样,http://www.cftea.com/ 首页就被保存到 C 盘下了。

用 DownloadData 或 OpenRead 抓取网页

using (System.Net.WebClient client =  new System.Net.WebClient())
{
     byte[] bytes = client.DownloadData( "http://www.cftea.com/");
     string str = (System.Text.Encoding.GetEncoding( "gb2312").GetString(bytes);
}

我们将抓取来的网页赋给变量 str,任由我们使用。也可以用 OpenRead 方法来获取数据流。

using (System.Net.WebClient client =  new System.Net.WebClient())
{
     using (System.IO.Stream stream = client.OpenRead( "http://www.cftea.com/"))
    {
         using (System.IO.StreamReader reader =  new System.IO.StreamReader(stream, System.Text.Encoding.GetEncoding( "gb2312")))
        {
             string str = reader.ReadToEnd();
            reader.Close();
        }
        stream.Close();
    }
}

用 UploadFile 上传文件

相对于 DownloadData、OpenRead,WebClient 也具有 UploadData、OpenWrite 方法,但最常用的恐怕还是上传文件,也就是用方法 UploadFile。

using (System.Net.WebClient client =  new System.Net.WebClient())
{
    client.Credentials =  new System.Net.NetworkCredential( "用户名""密码");
    client.UploadFile( "ftp://www.cftea.com/foo.txt""C:\\foo.txt");
}

注意 UploadFile 的第一个参数,要把上传后形成的文件名加上去,也就是说这里不能是:ftp://www.cftea.com/。

用 UploadValues POST 数据

WebClient wb =  new WebClient();
NameValueCollection nvc =  new NameValueCollection();
nvc.Add( "param1", param1);
nvc.Add( "param2", param2);
wb.UploadValues(url,  "post", nvc);

转载于:https://www.cnblogs.com/jordan2009/archive/2012/10/18/2728888.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值