My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 登陆资料
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
网上下载和上传数据(一)
作者:Montaque 时间:2002-01-26 12:13 出处:互联网 责编:MyFAQ
              摘要:网上下载和上传数据(一)

网上下载和上传数据()

Download & Upload Files or Data In VB.NET By Montaque

      

有时候,处于程序的需要,程序要求动态的从网络上更新数据,最常见的比如从数据中心下载或上传企业内部数据或者资料;

有时候,想做一些类似机器人的工作,让程序自动获取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也有很多中上传数据的方法,
除了跟上面对应的UploadDataUploadFileOpenWrite外还有一种UploadValuesUploadValuesNameValueCollection 
发送到资源并返回包含任何响应的字节数组,可以用于那些有表单的网页。

 

        例子就不写了,MSDNms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemnetwebclientclasstopic.htm都有详细的介绍,
在此不再赘述。

 


 

总结:

 

    简单介绍了WebClient的主要方法和应用,实际上WebClient可以完成一些比较简单的操作,
试想,如果服务器要求我们输入密码和用户名才能访问怎么办?或者其他的编程细节要处理?
那就是我们下次介绍的WebRequest  WebResponse
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有