天天看點

C# 網絡程式設計之最簡單浏覽器實作

      最近學習c#網絡程式設計的http協定程式設計,http即hypertext transfer protocol的縮寫,意為:超文本傳輸協定。其中與http相關的知識主要有六個類的知識,分别是

      (1).httpwebrequest類:用于擷取和操作http請求;

      (2).httpwebresponse類:用于擷取和操作http應答;

      (3).webrequest類:用于擷取和操作web請求;

      (4).webresponse類:用于擷取和操作web應答;

      (5).uri類:用于擷取和操作網絡資源位置;

      (6).webclient類:用于網絡用戶端操作.

      下面主要是利用利用上面所述類的方法擷取相應url的應答内容,通過指派資料流,再從位元組流中讀取内容指派給webbrowser控件中實作最簡單的浏覽器,但内容雖少,但也展現了浏覽器基本的一些操作和http相關的網絡程式設計知識。

一.界面設計

      界面中添加label1”輸入網址“,添加一個textbox作為輸入的網址,添加button1其text屬性為”浏覽“。最重要的是添加一個webbrower控件,該控件指"允許使用者在該控件中浏覽網頁",并且設定其anchor屬性(定義控件綁定到容器邊緣)為top、bottom、left、right。這樣點選全屏時能動态跟随變換的顯示網頁内容。

C# 網絡程式設計之最簡單浏覽器實作

二.源代碼

      主要是點選”浏覽“按鈕生成相應的點選事件,在事件中添加相關浏覽器代碼即可實作,同時還要添加相應的命名空間。

三.運作結果

C# 網絡程式設計之最簡單浏覽器實作

      點選“全屏”能如下顯示:

C# 網絡程式設計之最簡單浏覽器實作

      但是在浏覽時也有一些問題:一個是提示“沒有權限”的腳本錯誤,另一個是浏覽有的網站如我們的校内網時它的顯示格式是錯誤的,我們有時上網也遇到過校内網這種錯誤的格式,這些都是我接下來需要思考的問題。

      同時,在浏覽百度網站時我在ie中的狀态是登入的,能顯示我的使用者名,而用該浏覽器發現是未登入狀态,這就證明了很多我們上網的資訊是臨時存儲在cookies或session中的,這幫助我回顧了以前php課程中的内容。

      收藏一個網址詳細介紹了webbrowser控件,其中webbrowser1.navigate(textbox1.text.trim());一句話即可實作浏覽功能,而且不會出現iso-8859-1亂碼問題.

      最後,通過這個例子能很好的了解一些http網絡程式設計知識,同時能實作簡單的浏覽器,如果有不足或錯誤的地方,希望大家海涵!希望這篇文章能幫組大家,同時也幫組了我自己。