zoukankan      html  css  js  c++  java
  • WebRequest, WebResponse , HttpWebResponse, HttpWebResponse , WebClient笔记

    1.WebRequest, WebResponse  与 HttpWebRequest, HttpWebResponse

    WebRequest是一个抽象类, HttpWebRequest和FtpWebRequest都是它的子类。

    WebResponse也是一个抽象类, HttpWebResponse和FtpWebResponse都是它的子类。

    2.WebRequest, WebResponse 例子

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;

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

            private void button1_Click(object sender, EventArgs e)
            {
                Uri uri = new Uri(this.textBox2.Text);

                WebRequest req = WebRequest.Create(uri);

                //req.Headers.Add("User-Agent", "ie9");

                WebResponse respose = req.GetResponse();
               
                Stream ReceiveStream = respose.GetResponseStream();

                StreamReader sr = new StreamReader(ReceiveStream);

                string resultstring = sr.ReadToEnd();

                this.textBox1.Text = resultstring;
            }
        }
    }

    3.HttpWebRequest, HttpWebResponse 完成同样功能例子

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;

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

            private void button1_Click(object sender, EventArgs e)
            {
                Uri uri = new Uri(this.textBox2.Text);

                HttpWebRequest req = HttpWebRequest.Create(uri) as HttpWebRequest;

                req.Headers.Add("User-Agent", "ie9");

                HttpWebResponse respose = req.GetResponse() as HttpWebResponse;
               
                Stream ReceiveStream = respose.GetResponseStream();

                StreamReader sr = new StreamReader(ReceiveStream);

                string resultstring = sr.ReadToEnd();

                this.textBox1.Text = resultstring;
            }
        }
    }

    4.那到底WebRequest与HttpWebRequest有何区别呢?

    就在于http的特别之处,比如

    req.Headers.Add("User-Agent", "ie9");

    可以在HttpWebRequest中使用,但在WebRequest中不可以。

    5.FtpWebRequest和FtpWebResponse的例子以后再补,不过原理是一样的。

    6. WebClient的例子

    WebClient client = new WebClient();
    client.BaseAddress = textBox2.Text;
    Stream obj = client.OpenRead("/");
    StreamReader read=new StreamReader(obj);
    this.textBox1.Text = read.ReadToEnd();

    7. WebClient与HttpWebRequest的比较

    WebRequest, HttpWebRequest能完成的工作WebClient也都能做,那他们有何区别?看一下源代码即可知道,WebClient里面实际是调用了WebRequest的方法完成的相应功能。

    按照titi的话说“.Net框架中已经为我们提供了WebRequest和WebResponse两个强大的类来处理向URI标示的资源和获取数据了。然后,不足的是利用WebRequest和WebResponse时设置过于复杂。
    使用起来颇为费劲。于是乎有了现在的WebClient,WebClient其实可以理解为对WebRequest和WebResponse等协作的封装。它使人们使用起来更加简单方便,然后它也有先天不足的地方。

    那就是缺少对cookies/session的支持,用户无法对是否自动url转向的控制,还有就是缺少对代理服务器的支持。”

    推荐资料: 

    Determining Whether the Device Is Connected
    http://www.cnblogs.com/tuyile006/archive/2008/11/14/1333632.html

    WebClient的研究笔记(一)--认识WebClien

    thttp://www.cnblogs.com/titi/archive/2005/11/20/280914.html

  • 相关阅读:
    开发maven项目,war包部署tomcat访问无效解决方法
    内网穿透,把自己的外网电脑搞成服务器。
    SQL语句(oracle)分组获取最新一条数据
    保留n位小数
    Exception in thread "main" java.lang.RuntimeException: Stub!
    Ubantu右键没有新建文档选项
    Ubantu安装搜狗输入法
    Ubantu环境下安装python
    虚拟机安装Ubantu
    每日Scrum(1)
  • 原文地址:https://www.cnblogs.com/liuzhendong/p/2520272.html
Copyright © 2011-2022 走看看