一 WebClient类
提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法。
WebClient的使用步骤:
1.实例化一个WebClient对象。
2. 指定Proxy属性.
3. 如果要求确认的话,指定Credentials属性。
4. 调用带有期望的URL参数的DownloadXXX或者UploadXXX方法。
方法 | 说明 |
---|---|
OpenWrite | 检索一个用于将数据发送到资源的 Stream。 |
OpenWriteAsync(String) | 检索 Stream,它在不阻止调用线程的情况下将数据发送到资源。 |
UploadData | 将字节数组发送到资源,并返回包含任何响应的 Byte 数组。 |
UploadDataAsync(String, array<Byte>[]()[]) | 在不阻止调用线程的情况下,将 Byte 数组发送到资源。 |
UploadFile | 将本地文件发送到资源,并返回包含任何响应的 Byte 数组。 |
UploadFileAsync(String, String) | 在不阻止调用线程的情况下,将本地文件发送到资源。 |
UploadValues | 将 NameValueCollection 发送到资源,并返回包含任何响应的 Byte 数组。 |
UploadValuesAsync(String, NameValueCollection) | 在不阻止调用线程的情况下,将 NameValueCollection 发送到资源,并返回包含任何响应的 Byte 数组。 |
UploadString | 在不阻止调用线程的情况下,将 String 发送到资源。 |
UploadStringAsync | 在不阻止调用线程的情况下,将 String 发送到资源。 |
下表描述从资源下载数据的 WebClient 方法。
方法 | 说明 |
---|---|
OpenRead | 从资源以 Stream 的形式返回数据。 |
OpenReadAsync(String) | 在不阻止调用线程的情况下,从资源返回数据。 |
DownloadData | 从资源下载数据并返回 Byte 数组。 |
DownloadDataAsync(String) | 在不阻止调用线程的情况下,从资源下载数据并返回 Byte 数组。 |
DownloadFile | 从资源将数据下载到本地文件。 |
DownloadFileAsync(String, String) | 在不阻止调用线程的情况下,将数据从资源下载到本地文件。 |
DownloadString | 从资源下载 String 并返回 String。 |
DownloadStringAsync | 在不阻止调用线程的情况下,从资源下载 String。 |
示例:下载一个网页内容到本地,并用默认的WEB浏览器打开
二 WebRequest和WebResponse
WebRequest和WebResponse使用起来比WebClient更复杂,但也更为灵活。
下面介绍如何开始:
1 调用带有一个URL的WebRequest.Create实例化一个web请求
2 指定Proxy属性
3 如果要求确认的话,指定Credentials属性
上传数据:
4 对请求的对象调用 GetRequestStream,接着写这个流。如果响应是我们期待的,就跳到第五步。
下载数据:
5 对请求的对象调用GetResponse实例化一个web响应。
6 对响应对象调用GetResponseStream,然后读取这个流(可以用StreamReader).
示例:用 WebRequest和WebResponse重写前面的例子