国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

網上下載和上傳數據(一) Montaque(原作)

2024-07-21 02:28:09
字體:
來源:轉載
供稿:網友
網上下載和上傳數據(一)    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。
<


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 车险| 合江县| 昭平县| 乡城县| 房产| 城口县| 榆中县| 什邡市| 彭州市| 碌曲县| 法库县| 东兴市| 沿河| 阿克苏市| 太谷县| 涟水县| 雷波县| 扎鲁特旗| 定州市| 镇平县| 平乡县| 阳谷县| 台江县| 永城市| 宜兰县| 汾阳市| 湘潭县| 左贡县| 准格尔旗| 睢宁县| 乌兰察布市| 精河县| 南投市| 卫辉市| 荆门市| 和林格尔县| 平山县| 四川省| 普兰县| 商南县| 湄潭县|