C#实例---利用控件所搭建的界面可以访问一个网址

目标:访问任何一个网站(C#,HTTP)

1. 创建一个Windows窗体项;

2. 设置UI界面;

在Form1里面加入一个Label,一个Button和两个TextBox,将第二个TextBox的Multiline属性改为True;

3. 在Form窗体上点击右键,选“查看代码”(或者直接按F7也可以); ----上代码

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.IO;
using System.Net;

namespace catchANDaccessWeb
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            byte[] buf = new byte[38192];           
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(textBox1.Text);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream resStream = response.GetResponseStream();
            int count = resStream.Read(buf,0,buf.Length);
            textBox2.Text = Encoding.UTF8.GetString(buf, 0, count);
            webBrowser1.Navigate(textBox1.Text);
            resStream.Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

我们的目标就是抓取网页的内容,并且在textBox2控件中显示HTML代码;抓取网页的内容,显示到webBrowser1控件中;

开始我们创建了一个buf数组来存储请求返回的结果(内容是网页的HTML代码),其中数组的大小与我们请求的数据大小有关系。然后我们实例化了一个HttpWebRequest 类的request 对象,它来存储我们要请求的URL地址。而WebRequest.Create(textBox1.Text)方法返回的是WebRequest类型的对象,所以我们要对它进行类型转换成HttpWebRequest类型,并且赋值给request对象。而对于HttpWebRequest类对象,我们可以用GetResponse()方法来返回一个WebResponse对象,同理进行类型转换成HttpWebResponse;

如果前面的request和response有点乱可以这样看;

            //webRequest webRequest1 = new WebRequest();  这样实例化不可以,因为WebRequest是抽象类接口   同理WebResponse也不能实例化
            WebRequest webRequest = WebRequest.Create(textBox1.Text);
            HttpWebRequest request = (HttpWebRequest)webRequest;
            
            WebResponse webResponse = request.GetResponse();
            HttpWebResponse response = (HttpWebResponse)webResponse;

先创建WebRequest对象webRequest来存储URL的地址信息,然后进行类型转换成HttpWebRequest对象;同理response对象也是如此操作。

然后我们就可以使用response对象的GetResponseStream()方法来返回得到一个文本流,最后用Stream对象的Read()方法把返回的字节放到新建的int型变量中,这里Read()方法有三个,分别为:要放入的字节数组,字节数组的开始位置(偏移量),字节数组的长度。之后我们把Read()方法存储在count对象中(因为Read()方法的返回值是int型)。之后我们把获得的信息写在textBox2控件上,这里GetString()方法也有三个参数,分别为:要解码的字节数组,第一个要解码的字节索引,要解码的字节数。并且我们要将URL地址的全部信息加载到webBrowser1控件中,使用Navigate()方法即可。然后最最重要的一点别忘了关闭数据流。

程序演示:

  • PS:这就是我们程序的演示结果,但是有点问题,浏览器的不兼容会出现一些错误。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值