zoukankan      html  css  js  c++  java
  • HttpWebRequest类之基本定义

    HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择。它们支持一系列有用的属性。这两个类位 于System.Net命名空间,默认情况下这个类对于控制台程序来说是可访问的。请注意,HttpWebRequest对象不是利用new关键字通过构 造函数来创建的,而是利用工厂机制(factory mechanism)通过Create()方法来创建的。另外,你可能预计需要显式地调用一个“Send”方法,实际上不需要。接下来调用 HttpWebRequest.GetResponse()方法返回的是一个HttpWebResponse对象。你可以把HTTP响应的数据流 (stream)绑定到一个StreamReader对象,然后就可以通过ReadToEnd()方法把整个HTTP响应作为一个字符串取回。也可以通过 StreamReader.ReadLine()方法逐行取回HTTP响应的内容。

    这种技术展示了如何限制请求重定向(request redirections)的次数, 并且设置了一个超时限制。下面是HttpWebRequest的一些属性,这些属性对于轻量级的自动化测试程序是非常重要的。

    Get()方式,这张方式比较简单

     /// <summary>
        /// http之get提交
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_Two_Click(object sender, EventArgs e)
        {
            //不能直接new一个对象,需要同过创建
            HttpWebRequest hwRequest = (HttpWebRequest)WebRequest.Create("http://wwww.baidu.com");
            HttpWebResponse hwResponse =(HttpWebResponse)hwRequest.GetResponse();
            Stream str = hwResponse.GetResponseStream();//获取响应体,也就是请求url的类容
            StreamReader sr = new StreamReader(str,System.Text.Encoding.UTF8);
            Response.Write(sr.ReadToEnd());//输出在页面上
    
        }

    那么www.baidu,.com这个页面的内容就全部被你获取到了

    Post()提交

     protected void Button1_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("name=xxx");
            sb.Append("&");
            sb.Append("pwd=123");  //把我们需要传递的参数拼接好
            byte[] by = System.Text.Encoding.UTF8.GetBytes(sb.ToString());//转化成流的形式,需要编码
            HttpWebRequest hwRequest = (HttpWebRequest)WebRequest.Create("http://wwww.baidu.com");
            hwRequest.Method = "POST"; //post提交
            hwRequest.ContentType = "application/x-www-form-urlencoded ";
            //<form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
            hwRequest.ContentLength = by.Length;
            using (Stream str = hwRequest.GetRequestStream())
            {
                str.Write(by, 0, by.Length);  //把我们的参数已流的形式写入
            }
            HttpWebResponse hwResponse=(HttpWebResponse)hwRequest.GetResponse();
            //获取数据
            using (StreamReader sr = new StreamReader(hwResponse.GetResponseStream(),System.Text.Encoding.UTF8))
            {
                Response.Write(sr.ReadToEnd());
            }
        }

    Get()提交相比而言比较简单,Post()比较难一点,具体可以用post提交我们可以干嘛下次再说

  • 相关阅读:
    roscore提示“ModuleNotFoundError: No module named 'defusedxml'”的解决。
    Linux下/home/用户名/.local文件
    vscode 使用技巧一-列编辑。
    Ubuntu下安装visual studio code
    第一阶段(七)
    第一阶段(六)
    Python爬取imdb电影数据并存储到mysql数据库
    第一阶段(五)
    第一阶段(四)
    第一阶段(三)
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/6736077.html
Copyright © 2011-2022 走看看