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

网上下载和上传数据()

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值