随着因特网的普及,网络已经成为人们工作和生活中必不可少的一部分。作为应用程序开发中重要的一环,应用程序对网络的支持也变得越来越重要。当前,几乎所有的应用程序都或多或少地涉及网络应用。C#作为一门编程语言也提供了对网络应用的支持,本章将介绍C#在此方面的应用。
一、使用WebClient下载网页
网络应用中最常见的功能是网页的浏览。对于普通用户来说,网页是一个多媒体文档。网页中可能的构成部分包括普通文本、超链接、图片、视频和音频等。对于开发人员而言,网页则是一个包含HTML代码的文件。在C#中使用System.net命名空间下的类可以方便地进行下载网页的操作。
实例,创建一个Web页面下载程序:
using System.net;
using System.IO;
class program
{
static void Main(string[ ] args)
{
//声明一个WebClient对象,用于从网络中获取数据
WebClient web=new WebClient();
//使用OpenRead方法获取数据,并将其保存到Stream类型变量中
Stream s =web.OpenRead(@"http://www.baidu.com/");
//用Stream类型变量s声明一个流读取变量sr
StreamReader sr =new StreamReader(s);
//声明一个变量,用于保存一行从WebClient中下载的数据
string line;
//循环读取直到最后
while((line = sr.ReadLine())!=null)
{
Console.WriteLine(line);//输出
}
//关闭流读取变量sr,释放其占用的资源
sr.Close();
}
}
浏览器打开百度网址,查看源文件,记事本的内容与实例输出的内容只有中文部分不同,这是由于在操作流(Stream)时,没有处理字符编码。其他内容则全部相同。
注意:运行此程序需要网络连接
二、创建Web页面浏览程序
单纯地显示Web页面的代码对于普通用户而言是没有意义的,因此一般需要创建一个友好的、页面兼容性强的Web页面显示程序。在C#中,可以使用一个简单的WebBrowser控件来实现Web页面的浏览。
实例:
添加一个WebBrowser控件
public partial class Form1:Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender,EventArgs e)
{
//创建一个Uri类型的变量,表示要访问的页面地址
Uri address = new Uri(@"http://www.baidu.com");
//设置WebBrowser控件的访问地址为Uri类型的变量address
this.webBrowser1.Url=address;
}
}
三、使用COM组件创建网页浏览程序
除了Visual Studio2005中提供的WebBrowser控件,Windows操作系统中还提供了一个名为Microsoft Internet Controls的COM组件,用于提供对Web浏览的支持。
本节介绍如何使用该控件创建网页浏览程序:
鼠标右键单击”工具箱“面板,选择”选择项“命令,在弹出的”选择工具箱项“对话框,选择”Microsoft Web浏览器“选项,向窗体中添加”Microsoft Web浏览器”组件
public partial class Form1:Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender,EventArgs e)
{
//设置Microsoft Web浏览器的访问网页如下
this.axWebBrowser1.Navigate(@"http://www.baidu.com");
}
}