首页 > 编程 > .NET > 正文

vb.net下载数据

2024-07-10 13:07:10
字体:
来源:转载
供稿:网友
有时候,处于程序的需要,程序要求动态的从网络上更新数据,最常见的比如从数据中心下载或上传企业内部数据或者资料;有时候,想做一些类似机器人的工作,让程序自动获取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("/xrssfile/2006-12/26/2006122602354452.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()
 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表