1.什么是WebClient?

源自MSDN:提供用于将数据发送到由 URI 标识的资源及从这样的资源接收数据的常用方法。

2.OpenRead()  为从具有String指定的URI的资源下载的数据打开一个可读的流。

需要先引用System.Net和System.IO.

        public  static void GetPage(string uri)
{
WebClient wc = new WebClient();
Stream stream = wc.OpenRead(uri); //OpenRead的返回类型是Stream
using (StreamReader sr = new StreamReader(stream))
{
string line = "";
while ((line=sr.ReadLine())!=null)
{
Console.WriteLine(line);
}
}
}

3.OpenWrite()  打开一个流以将数据写入指定的资源.

public void SendData(string uri, string content)
{
WebClient wc=new WebClient();
Stream stream = wc.OpenWrite(uri);
using (StreamWriter sw = new StreamWriter(stream))
{
sw.Write(content);
}
}

4.DownloadFile() 将具有指定 URI 的资源下载到本地文件。

WebClient wb = new WebClient();
wc.DownloadFile("http://www.xx.com", "xx.html");

异步下载:

WebClient wc = new WebClient();
wc.DownloadProgressChanged += (sender, args) => Console.WriteLine(args.ProgressPercentage+ "% complete");
Task.Dealy().ContinueWith(ant => wc.CancelAsync()); //如果超过限制时间,则取消下载
await wc.DownloadFileTaskAsync("http://www.xx.com", "xx.html"); // await 是C# 5.0中实现异步操作的关键字

C#网络编程之WebClient的更多相关文章

  1. 网络编程之webclient和httpwebrequest的使用

    (1)Lambda表达式 “Lambda表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式树类型. 所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符 ...

  2. 网络编程之socket

    网络编程之socket socket:在网络编程中的一个基本组件,也称套接字. 一个套接字就是socket模块中的socket类的一个实例. 套接字包括两个: 服务器套接字和客户机套接字 套接字的实例 ...

  3. [深入浅出WP8.1(Runtime)]网络编程之HttpClient类

    12.2 网络编程之HttpClient类 除了可以使用HttpWebRequest类来实现HTTP网络请求之外,我们还可以使用HttpClient类来实现.对于基本的请求操作,HttpClient类 ...

  4. java网络编程之TCP通讯

    java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, /* *TCP *建立连接,形成传输数据的通道: *在连接中进行大数据量传输: *通过三次握手 ...

  5. python3网络编程之socketserver

    本节主要是讲解python3网络编程之socketserver,在上一节中我们讲到了socket.由于socket无法支持多用户和多并发,于是就有了socket server. socket serv ...

  6. 网络编程之UDP编程

    网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...

  7. 网络编程之TCP编程

    网络编程之TCP编程 前面已经介绍过关于TCP协议的东西,这里不做赘述.Java对于基于TCP协议的网络通信提供了良好的封装,Java使用socket对象来代表两端的通信窗口,并通过Socket产生I ...

  8. 网络编程之socketserver

    网络编程之socketserver """ socketserver.py 中的5个基础类 +------------+ | BaseServer | +-------- ...

  9. 网络编程之Socket & ServerSocket

    网络编程之Socket & ServerSocket Socket:网络套接字,网络插座,建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP ...

随机推荐

  1. function的粗浅理解

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Egret 入门

    居然使用 TyptScript... 先贴手册地址:http://www.typescriptlang.org/docs/tutorial.html. 先要接受一个诡异的写法: private loa ...

  3. SPSS时间序列分析

    时间序列分析必须建立在预处理的基础上…… 今天看了一条新闻体会到了网络日志的重要性…… 指数平滑法(Exponential Smoothing,ES)是布朗(Robert G..Brown)所提出,布 ...

  4. JavaEmail

    一.邮件相关基本概念   a)邮件服务器:某厂商提供的电子邮件服务器的集群(或群集)   b)电子邮箱:邮件服务器上提供的个人或企业的邮件空间   c)邮件传输协议:邮件服务器之间,和个人或企业与邮件 ...

  5. Delphi 使用自定义消息

    Delphi 使用自定义消息   1.先用Const 定义一个常量,例如 const WM_MyMessage=WM_USER+$200; 2.在要实现的unit中定义一个私有方法 procedure ...

  6. Mutex — Windows API

    Mutex是互斥体的意思,当一个线程持有一个Mutex时,其它线程申请持有同一个Mutex会被阻塞,因此可以通过Mutex来保证对某一资源的互斥访问(即同一时间最多只有一个线程访问).调用Create ...

  7. SWIFT国际资金清算系统

    SWIFT又称:“环球同业银行金融电讯协会”,是国际银行同业间的国际合作组织,成立于一九七三年,目前全球大多数国家大多数银行已使用SWIFT系统.SWIFT的使用,使银行的结算提供了安全.可靠.快捷. ...

  8. 数据库 —— Access 数据库

    0.Access 下载 1.Access 语法 链接:http://blog.csdn.net/tercel99/article/details/5725157 2.ADO 相关: 在VC++6.0中 ...

  9. html5 教程

    http://www.tutorialspoint.com/html5/index.htm

  10. Ubuntu 13.04 安装 GCC4.8.1

    终于有了完整实现C++11的GCC 4.8.1. 给自己的系统升级吧. 下面的步骤可以安装GCC4.8.1, 内容来自:http://askubuntu.com/questions/312620/ho ...