网上下载和上传数据(一)

网上下载和上传数据(一)
阅读正文文字大小:增大 减小  文字行距:增大 减小   双击自动滚屏
有时候,处于程序的需要,程序要求动态的从网络上更新数据,最常见的比如从数据中心下载或上传企业内部数据或者资料;有时候,想做一些类似机器人的工作,让程序自动获取IntraNet亦或InterNet上的资源,可能是新闻、图片、以及你想得到的……这个时候就需要编一些小程序。
今天我主要介绍一下在.NET中如何获取网络上的数据,当然可以是局域网,甚至Local 文件系统。利用WebClient类,易如反掌!
关于WebClient:
在MSDN中,这样描述WebClient类:
“提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法”, 默认情况下,.NET 框架支持以 http:、https: 和 file: 方案标识符开头的 URI。是不是封装了很多我们想要实现的过程?呵呵。看一下它的主要成员:
成员
类型
描述
BaseURI
属性
当前的 URL 地址
DownloadData
方法
从一个 URI 下载数据,以字节数组的形式返回
DownloadFile
方法
从一个 URI 下载数据,保存为本地文件
OpenRead
方法
以流的形式打开并执行读操作
OpenWrite
方法
打开一个流用于向 URI 写数据
UploadData
方法
URI 上传数据
UploadFile
方法
把一个本地文件上载到制定 URI
UploadValues
方法
NameValueCollection 发送到资源并返回包含任何响应的字节数组
具体看一下如何下载文件或数据:
WebClient提供了大概三种方式从网上下载数据:
1. DownloadData
从资源下载数据并返回字节数组。
Public Function DownloadData( ByVal address As String ) As Byte()
接受一个参数,address是从中下载数据的 URI。注意返回的是一个字节数组,我在以前的文章中提到过很多次,我们可以很简单的转换为我们需要的格式。
看一个代码:
Dim wc As New System.Net.WebClient() ‘跟网络相关的类一般都在System.Net下
Dim html As String = Encoding.ASCII.GetString(wc.DownloadData("http:www.csdn.net"))
Debug.WriteLine(html)
你就会得到很长的一个String,实际上就是CSDN第一页的源代码。
2.
DownloadFile
从具有指定 URI 的资源将数据下载到本地文件
Public Sub DownloadFile( ByVal address As String, ByVal fileName As String )
address :从中下载数据的 URI。
FileName :要接收数据的本地文件的名称。
使用也很简单:
Dim wc As New System.Net.WebClient()
wc.DownloadFile("http://www.csdn.net/images/ad/vsnet_120.gif","c:test.gif")
成功运行后,本地机的C:会多出一个小图片,就是VS.NET 4CD的广告。
3. OpenRead
为从具有指定 URI 的资源下载的数据打开一个可读的流。
Public Function OpenRead(ByVal address As String ) As Stream
参数
address 从中下载数据的 URI。
流的概念熟悉吗?不熟的话看一下我以前的文章吧,很基本的操作都有。
下面的示例打开由 uriString 标识的资源并将结果显示在系统控制台上。请注意,由 OpenRead 返回的 Stream 在读取完数据之后将被关闭。

Dim myWebClient As New System.Net.WebClient()
Dim uriString As String="http://www.csdn.net"
Console.WriteLine("Accessing {0} ...", uriString)
Dim myStream As Stream = myWebClient.OpenRead(uriString)
Console.WriteLine(ControlChars.Cr + "Displaying Data :" + ControlChars.Cr)
Dim sr As New StreamReader(myStream)
Console.WriteLine(sr.ReadToEnd())
myStream.Close()

上传数据
有下载必然有上传,同样对应的WebClient也有很多中上传数据的方法,除了跟上面对应的UploadData、UploadFile、OpenWrite外还有一种UploadValues,UploadValues将NameValueCollection 发送到资源并返回包含任何响应的字节数组,可以用于那些有表单的网页。
例子就不写了,MSDN中ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemnetwebclientclasstopic.htm都有详细的介绍,在此不再赘述。

总结:
简单介绍了WebClient的主要方法和应用,实际上WebClient可以完成一些比较简单的操作,试想,如果服务器要求我们输入密码和用户名才能访问怎么办?或者其他的编程细节要处理?那就是我们下次介绍的WebRequest 和 WebResponse。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值