动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   .Net → 阅读文章

 对象与像素的选择

作者来源: 
阅读 1089 人次 , 2006-3-29 4:33:00 


有时候,处于程序的需要,程序要求动态的从网络上更新数据,最常见的比如从数据中心下载或上传企业内部数据或者资料;有时候,想做一些类似机器人的工作,让程序自动获取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("/ShowImg.asp?p=/2006-3-29/38870;ca\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。

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:网上下载和上传数据(二)
· 下一篇:一个SDK里做聊天室的例子
· 迁移到 ASP .NET:需考虑的重要问题(1)
· Session 和Cookie 的关系
· DataGrid巧用实现目录浏览
· CNET JSP BASIC:JSP与JavaBean
· 有关TextBox中输入字符控制的一种解决办法


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077