最近学习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# 网络编程之最简单浏览器实现相关推荐

  1. C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口。

    C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口. 最近接触了C#Socket网络编程,试着做了试试(*^__^*) 实现多个客户端和服务端互相发送消息 发送文件 抖动窗口功能 ...

  2. C# 网络编程之网页简单下载实现

    这是根据<C#网络编程实例教程>中学到的知识实现的一个C#网页简单下载器,其中涉及到的知识主要是HTTP协议编程中相关类:HttpWebRequest类.HttpWebResponse类. ...

  3. Windows网络编程入门:简单的客户端和服务器通信程序调试

    昨日入手Windows网络编程经络这本书,第一章给了Echo客户端和服务器的简单通信实例程序.从小白到入门目测都是比较苦逼,居然想不到怎么来测试结果.什么同时运行啊.分别编译运行啊乱七八糟的想法就开始 ...

  4. NIO网络编程实战之简单多人聊天室

    NIO网络编程实战 利用NIO编程知识,实现多人聊天室. 1. NIO编程实现步骤 第一步:创建Selector 第二步:创建ServerSocketChannel,并绑定监听端口 第三步:将Chan ...

  5. c++网络编程:实现简单的聊天——基于服务器/客户端的模式

    c++ socket编程 服务器/客户端 最近在学c++网路编程,写个帖子记录自己的学习过程,部分内容参考一个博主的,附上他的链接: link 实现: 客户端往服务器端发送一条数据,服务器端接收数据并 ...

  6. [Python 网络编程] TCP、简单socket模拟ssh (一)

    OSI七层模型(Open System Interconnection,开放式系统互联) 应用层网络进程访问应用层:为应用程序进程(例如:电子邮件.文件传输和终端仿真)提供网络服务:提供用户身份验证表 ...

  7. 深入理解计算机系统:网络编程 下 一个简单的web服务器

    编写一个web服务器的基础是熟悉套接字接口.笔者因为还没有对其进行实践,只对其有一些粗浅的了解.本文重点记录一个web服务的核心功能主要由哪几部分组成. 1. main函数 之前写到,从客户端到服务器 ...

  8. UNIX网络编程笔记(4):简单的回射程序

    上一讲中我们通过调用fork函数实现了一个简单的并发时间获取服务器.这是一个简单的并发服务器框架,然而这里使用这个框架实现一个简单的回射服务器会出现一个问题,这个问题就是僵尸子进程. 1.回射程序 下 ...

  9. UNIX网络编程笔记(3):简单的并发服务器

    上一讲中的简单时间获取服务器是一个迭代服务器,对于获取时间来说够用了.迭代服务器有这样的特点:同一时间只能给一个客户服务.也就是说,如果某一时刻服务器与某个客户正在连接,其它客户必须等到上一个客户与服 ...

最新文章

  1. 低声教育_我内心低声说:“成为建设者”
  2. java win10 写入c盘_win10 1709 安装后很多软件没有权限向C盘写入文件
  3. CentOS 6网络配置
  4. 三星WP7手机MANGO一分钟完美越狱
  5. 微软加入字节码联盟,进一步开发支持Blazor 的WebAssembly技术
  6. keras实现简单lstm_深度学习(LSTM)在交通建模中的应用
  7. cmd sc命令进行服务操作
  8. 花书+吴恩达深度学习(三)反向传播算法 Back Propagation
  9. 使用python实现arp欺骗
  10. sql连接查询语句中on、where筛选的区别总结
  11. 基于matlab的天线方向图
  12. 让创意设计更加简单:在线设计平台Canva登陆中国
  13. 最新影视双端app对接苹果cms+详细安装教程
  14. PHP实战项目(仿糯米网)
  15. Revit出图问题:打印机中新建纸张尺寸?批量导出图纸?
  16. 计算机组装原则与注意事项,计算机安装流程和注意事项
  17. 2022年4月编程语言排行
  18. 计算机网络分类各自特点是什么意思,计算机网络的定义、分类、特点
  19. 股票MA算法(Java实现)
  20. 车载系统的电源状态及迁移

热门文章

  1. RMAN的一些术语解释
  2. ORACLE sqlplus set 命令速查
  3. SaaS全球普及面临三大门槛
  4. Android系统版本与API级别对照表
  5. Struts自定义拦截器拦截器工作原理
  6. 8.Java格式化输出
  7. jar 命令 打包装class文件的文件夹
  8. 『Golang』Martini框架入门
  9. 在Mapnik中显示中文(网上资料整理)
  10. java类使用其他类的变量_如何将java类中的变量加载到其他类