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。这样点击全屏时能动态跟随变换的显示网页内容。
二.源代码
主要是点击”浏览“按钮生成相应的点击事件,在事件中添加相关浏览器代码即可实现,同时还要添加相应的命名空间。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;//新添加命名空间
using System.Net;
using System.IO;namespace HttpWeb
{public partial class Form1 : Form{public Form1(){InitializeComponent();}//双击"浏览"添加Click事件private void button1_Click(object sender, EventArgs e){//获取输入的URLstring url = textBox1.Text;//创建http链接//HttpWebRequest对象实例:该类用于获取和操作HTTP请求 var可改成HttpWebRequestvar request = (HttpWebRequest)WebRequest.Create(url); //Create:创建WebRequest对象//HttpWebResponse对象实例:该类用于获取和操作HTTP应答 var可改成HttpWebResponsevar response = (HttpWebResponse)request.GetResponse(); //GetResponse:获取答复//构造数据流对象实例Stream stream = response.GetResponseStream();//GetResponseStream:获取应答流StreamReader sr = new StreamReader(stream); //从字节流中读取字符//从流当前位置读取到末尾并显示在WebBrower控件中string content = sr.ReadToEnd();webBrowser1.DocumentText = content; }}
}
三.运行结果
输入http://www.baidu.com点击”浏览“按钮即可实现浏览百度网页,同时注意在输入URL中要加入"HTTP://”,它只是简单的实现,必然处理的方式都是按照基本语法解析。
点击“全屏”能如下显示:
但是在浏览时也有一些问题:一个是提示“没有权限”的脚本错误,另一个是浏览有的网站如我们的校内网时它的显示格式是错误的,我们有时上网也遇到过校内网这种错误的格式,这些都是我接下来需要思考的问题。
同时,在浏览百度网站时我在IE中的状态是登录的,能显示我的用户名,而用该浏览器发现是未登录状态,这就证实了很多我们上网的信息是临时存储在Cookies或Session中的,这帮助我回顾了以前PHP课程中的内容。
收藏一个网址详细介绍了webbrowser控件,其中webBrowser1.Navigate(textBox1.Text.Trim());一句话即可实现浏览功能,而且不会出现ISO-8859-1乱码问题.
http://www.cnblogs.com/txw1958/archive/2012/09/24/CSharp-WebBrowser.html
最后,通过这个例子能很好的了解一些HTTP网络编程知识,同时能实现简单的浏览器,如果有不足或错误的地方,希望大家海涵!希望这篇文章能帮组大家,同时也帮组了我自己。
(BY:Eastmount 2013-7-26-早8点 http://blog.csdn.net/eastmount/)
C# 网络编程之最简单浏览器实现相关推荐
- C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口。
C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口. 最近接触了C#Socket网络编程,试着做了试试(*^__^*) 实现多个客户端和服务端互相发送消息 发送文件 抖动窗口功能 ...
- C# 网络编程之网页简单下载实现
这是根据<C#网络编程实例教程>中学到的知识实现的一个C#网页简单下载器,其中涉及到的知识主要是HTTP协议编程中相关类:HttpWebRequest类.HttpWebResponse类. ...
- Windows网络编程入门:简单的客户端和服务器通信程序调试
昨日入手Windows网络编程经络这本书,第一章给了Echo客户端和服务器的简单通信实例程序.从小白到入门目测都是比较苦逼,居然想不到怎么来测试结果.什么同时运行啊.分别编译运行啊乱七八糟的想法就开始 ...
- NIO网络编程实战之简单多人聊天室
NIO网络编程实战 利用NIO编程知识,实现多人聊天室. 1. NIO编程实现步骤 第一步:创建Selector 第二步:创建ServerSocketChannel,并绑定监听端口 第三步:将Chan ...
- c++网络编程:实现简单的聊天——基于服务器/客户端的模式
c++ socket编程 服务器/客户端 最近在学c++网路编程,写个帖子记录自己的学习过程,部分内容参考一个博主的,附上他的链接: link 实现: 客户端往服务器端发送一条数据,服务器端接收数据并 ...
- [Python 网络编程] TCP、简单socket模拟ssh (一)
OSI七层模型(Open System Interconnection,开放式系统互联) 应用层网络进程访问应用层:为应用程序进程(例如:电子邮件.文件传输和终端仿真)提供网络服务:提供用户身份验证表 ...
- 深入理解计算机系统:网络编程 下 一个简单的web服务器
编写一个web服务器的基础是熟悉套接字接口.笔者因为还没有对其进行实践,只对其有一些粗浅的了解.本文重点记录一个web服务的核心功能主要由哪几部分组成. 1. main函数 之前写到,从客户端到服务器 ...
- UNIX网络编程笔记(4):简单的回射程序
上一讲中我们通过调用fork函数实现了一个简单的并发时间获取服务器.这是一个简单的并发服务器框架,然而这里使用这个框架实现一个简单的回射服务器会出现一个问题,这个问题就是僵尸子进程. 1.回射程序 下 ...
- UNIX网络编程笔记(3):简单的并发服务器
上一讲中的简单时间获取服务器是一个迭代服务器,对于获取时间来说够用了.迭代服务器有这样的特点:同一时间只能给一个客户服务.也就是说,如果某一时刻服务器与某个客户正在连接,其它客户必须等到上一个客户与服 ...
最新文章
- 低声教育_我内心低声说:“成为建设者”
- java win10 写入c盘_win10 1709 安装后很多软件没有权限向C盘写入文件
- CentOS 6网络配置
- 三星WP7手机MANGO一分钟完美越狱
- 微软加入字节码联盟,进一步开发支持Blazor 的WebAssembly技术
- keras实现简单lstm_深度学习(LSTM)在交通建模中的应用
- cmd sc命令进行服务操作
- 花书+吴恩达深度学习(三)反向传播算法 Back Propagation
- 使用python实现arp欺骗
- sql连接查询语句中on、where筛选的区别总结
- 基于matlab的天线方向图
- 让创意设计更加简单:在线设计平台Canva登陆中国
- 最新影视双端app对接苹果cms+详细安装教程
- PHP实战项目(仿糯米网)
- Revit出图问题:打印机中新建纸张尺寸?批量导出图纸?
- 计算机组装原则与注意事项,计算机安装流程和注意事项
- 2022年4月编程语言排行
- 计算机网络分类各自特点是什么意思,计算机网络的定义、分类、特点
- 股票MA算法(Java实现)
- 车载系统的电源状态及迁移