分享
 
 
 

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

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

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也有很多中上传数据的方法,除了跟上面对应的UploadData、UploadFile、OpenWrite外还有一种UploadValues,UploadValues将NameValueCollection 发送到资源并返回包含任何响应的字节数组,可以用于那些有表单的网页。

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

总结:

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有