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

我们知道用 WebRequest(HttpWebRequest、FtpWebRequest) 和 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

❤️ 炒 股 实 战丨原 地 起 飞 ❤️

郑重声明: 1、个人版可以免费获取交易数据进行分析,企业级大规模调用数据需要购买积分(大家玩玩即可) 2、为避免广告代言,本文将不会出现任何logo、链接和包,需要玩的主页私聊我! &#x1f345…

人工智能研究的新前线:生成式对抗网络

林懿伦, 戴星原, 李力, 王晓, 王飞跃来源:科学网 摘要:生成式对抗网络(Generative adversarial networks, GAN)是当前人工智能学界最为重要的研究热点之一。其突出的生成能力不仅可用于生成各类图像和自然语言数据,还启…

WP7开发小技巧之快捷键

开发 Windows Phone 7 应用程式,开启用键盘输入的密技 1. 启用键盘输入 在模拟器里调试程序时,默认情况下是不能用电脑的键盘输入,但是调试如果能用PC键盘肯定能提高不少速度。其实微软已经为我们程序员做了这方面的工作,可以按如…

1.MySQL数据库的介绍

1.MySQL数据库的介绍 什么是数据库 数据库(Database)就是按照数据结构来组织,存储和管理数据的仓库 专业的数据库是专门对数据进行创建,访问,管理,搜索等操作的软件,比起我们自己用文件读写的方式对象数据进行管理更…

中国自动化学会平行智能专业委员会成立

摘要:2018年8月18日上午,中国自动化学会平行智能专业委员会成立大会在中国科学院自动化研究所报告厅隆重举行。2018年8月18日上午,中国自动化学会平行智能专业委员会成立大会在中国科学院自动化研究所报告厅隆重举行。中国科学院院士吴宏鑫教…

蚂蚁的天堂

当今各个社区都轰轰烈烈的展开灭蚁运动时,我却任由蚂蚁在窗台的花盆里做窝,看着它们辛勤的在高大植物的根茎上劳作,时不时的还帮我灭掉了植物上害虫的幼卵,我就很高兴有这么一群邻居,时不时的还送写肉碎过来&#xff0…

2008-2018,5个版本互联网大脑模型的演进与对比

2018年8月,我们绘制的第五个版本的互联网大脑模型图,新的版本相当于为互联网找到了左右大脑的机制-机器智能左大脑和群体智能右大脑。第五版的绘制距离2008年第一个版本正好10年。互联网大脑模型主要是针对1969年以来互联网的网状模型,在21世…

2.安装MySQL

2.安装MySQL Mac系统中安装MySQL 使⽤用Mac中的Homebrew进⾏行行mysql的安装 1.下载安装mysql brew install mysql5.7 如果看到以下界⾯面则表示已经下载安装成功 2.启动mysql mysql.server start 3.关闭mysql mysql.server stop 4.登录mysql mysql -u root -p Windows安…

正则判断字符串是否为数字

var re /^(-?\d)(\.\d)?$/; //判断字符串是否为数字 var re/^[A-Za-z0-9]$/; //字母和数字组合转载于:https://www.cnblogs.com/peterdys/archive/2012/10/19/2731502.html

3.认识和操作一下mysql的基本命令

3.认识和操作一下mysql的基本命令 登录mysql,在终端输入以下命令,进行登录 mysql -u root -pMacBook-Pro:~ yc$ mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.7.28…

CNNIC互联网报告:中国网民超8亿 前沿科技进展显著

来源:新浪摘要:8月20日下午消息,中国互联网络信息中心(CNNIC)在京发布第42次《中国互联网络发展状况统计报告》。根据报告,截至2018年6月30日,我国网民规模达8.02亿,普及率为57.7%;手机网民规模达7.88亿&am…

以前看过一个压缩过的.exe,运行会播放长达半小时的动画,却只有60KB,个人认为其中的原理...

以前看过一个压缩过的.exe,运行会播放长达半小时的动画,而不重复,文件大小却只有60KB,个人认为其中的原理 1.主原理:该动画必是根据规则(即公式)生成的 2.启动时,根据公式&#xff0…

4.MySQL基础操作

4.MySQL基础操作 使用方法: 方式一: 通过在命令行敲命令来操作 ( 有助于命令的掌握)方式二: 通过图型界面工具,如 Navicat 等(在熟练掌握后再使用)方式三:通过编程语言(python,php,java,go...)执行mysql命令 SQL ( Structure query language ) 结构化查询语言 SQL语言分为4个…

OE模块常用表结构

so_headers_all;so_lines_all; 表名:ONT.OE_order_headers_all 说明:订单头 HEADER_ID NUMBER 订单头标识码 ORG_ID NUMBER OU ID ORDER_TYPE_ID NUMBER 订单类型ID ORDER_NUMBER NUMBER 订单编号 ORDERED_DATE DATE 定购日期 REQUEST_DATE DATE 客户要求…

19个人工智能(AI)热门应用领域,你知道多少?

来源:网络大数据摘要:自然语言生成是人工智能的分支,研究如何将数据转化为文本,用于客户服务、报告生成以及市场概述。01自然语言生成(Natural Language Generation)自然语言生成是人工智能的分支,研究如何将数据转化为…

滴滴重磅发布:KDD2018大会187页人工智能+交通教程

来源:专知摘要:随着深度学习技术的提升,智能交通领域吸引了越来越多研究人员的关注,今天为大家带来滴滴在KDD大会上的最新教程,为大家呈现智能交通领域的最新进展。摘要随着网上约车与自动驾驶技术的快速发展&#xff…

5.一文搞懂MySQL的数据类型

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌简历模板、PPT模板、技术资料尽管【关注】私聊我。 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 历史文章目录&#…

用busybox制作并配置根文件系统

http://blog.chinaunix.net/uid-26758020-id-3208951.html一、根文件系统和busybox1) 在~目录下,创建一个rootfs目录,将其制作为nfs,目录结构如下(写一个脚本script.sh):mkdir bin d…

中国机器人产业发展报告(2018)正式发布!

来源:机器人创新生态摘要:2018年8月16日,《中国机器人产业发展报告(2018)》于2018世界机器人大会主论坛上正式发布,该报告为工信部2016-2018年专项《建立我国机器人团体标准体系与产业信息资源库》的阶段性…

❤️ 给你的Linux把把脉(内存、磁盘、CPU、网络)❤️

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌。简历模板、职场PPT模板、技术难题交流、面试套路尽管【关注】私聊我。 今日重点: ① 学会查看linux各种状态,包括&a…